3κ°μ§ μ νμ νΌλλ₯Ό ꡬννλ €κ³ ν©λλ€.
νΌλ ν΄λμ€, νΌλ μ ν λ° κ° μ νμ λν΄ νΉμ ν΄λμ€λ₯Ό μ¬μ©νκ³ μμ§λ§ νΌλ ν΄λμ€λ₯Ό κ° μ ν ν΄λμ€(λΉλμ€ ν΄λμ€, μ΄λ―Έμ§ ν΄λμ€)μ μ°κ²°νλ λ°©λ²μ λͺ¨λ₯΄κ² μ΅λλ€.
μ΄λ ν μ μ?
μ§μ μ£Όμ μ κ°μ¬ν©λλ€
@sebastian-code μ΄ κΈ°λ₯μ μκ³ μμ§λ§ λ·° λ΄λΆμ μ΄λ―Έμ§ νΌλ λλ λΉλμ€ νΌλμμ μΆκ° νλλ₯Ό μ΄λ»κ² μ»μ μ μλμ§ λͺ¨λ₯΄κ² μ΅λλ€.
μ΄κ²μ λ΄ μ½λμ λλ€.
<strong i="7">@python_2_unicode_compatible</strong>
class Feed(models.Model):
#STATUS OF FEEDS
DRAFT = 'D'
PUBLISHED = 'P'
INVISIBLE = 'I'
VISIBLE = 'V'
# #TYPE OF FEEDS
TYPE_STATUS = 'STATUS'
# TYPE_IMG = 'IMAGE'
# TYPE_VOD = 'VIDEO'
# TYPE_MATCH = 'MATCH'
STATUS = (
(DRAFT, 'Draft'),
(PUBLISHED, 'Published'),
)
user = models.ForeignKey(User)
date = models.DateTimeField(auto_now_add=True)
post = models.TextField()
parent = models.ForeignKey('Feed', null=True, blank=True)
likes = models.IntegerField(default=0)
comments = models.IntegerField(default=0)
#post_type = models.TextField(null=True, blank=True)
#media_url = models.TextField(null=True, blank=True)
media_url = None
#Custom fields
post_type = models.ForeignKey('FeedType')
status = models.CharField(max_length=1, choices=STATUS, default=DRAFT)
tags = TaggableManager()
specific_post = models.IntegerField(default=0)
class Meta:
verbose_name = _('Feed')
verbose_name_plural = _('Feeds')
ordering = ('-date',)
#
class FeedType(models.Model):
feed_type = models.CharField(max_length=255, default=Feed.TYPE_STATUS)
class Meta:
verbose_name = _('FeedType')
verbose_name_plural = _('FeedTypes')
ordering = ('pk',)
def __str__(self):
return self.feed_type
#method
<strong i="8">@staticmethod</strong>
def get_status_type():
print("get_status_type();")
feed_type = FeedType.objects.get(pk=1)
return feed_type
<strong i="9">@staticmethod</strong>
def get_image_type():
print("get_image_type();")
feed_type = FeedType.objects.get(pk=2)
return feed_type
<strong i="10">@staticmethod</strong>
def get_video_type():
print("get_video_type();")
feed_type = FeedType.objects.get(pk=3)
return feed_type
<strong i="11">@staticmethod</strong>
def get_match_type():
print("get_match_type();")
feed_type = FeedType.objects.get(pk=4)
return feed_type
'''
IMAGE FEED
'''
class ImageRelationsMixin(object):
class FeedManagerMeta:
image_feed = 'feeds.ImageFeed'
<strong i="12">@property</strong>
def Feed(self):
feed_model_path = getattr(self.FeedManagerMeta, 'feed', 'feeds.ImageFeed')
#print(django_get_model(*feed_model_path.split('.')))
return django_get_model(*feed_model_path.split('.'))
class ImageFeedMixin(ImageRelationsMixin, models.Model):
"""ImageFeed represents .
:Parameters:
- ``: member's first name (required)
"""
content_url = models.TextField(null=True, blank=True, default='')
class Meta:
abstract = True
def __unicode__(self):
return self.post
def __str__(self):
return self.post
class ImageFeed(Feed, ImageFeedMixin):
'''django_user = models.ForeignKey(DjangoUser, null=True, blank=True, on_delete=models.SET_NULL,
related_name='%(app_label)s_%(class)s_set')'''
django_feed = models.ForeignKey(Feed, null=True, blank=True, on_delete=models.SET_NULL,
related_name='%(app_label)s_%(class)s_set')
# this is just required for easy explanation
class Meta(ImageFeedMixin.Meta):
abstract = False
'''
Video FEED
'''
class VideoRelationsMixin(object):
class FeedManagerMeta:
video_feed = 'feeds.VideoFeed'
<strong i="13">@property</strong>
def Feed(self):
feed_model_path = getattr(self.FeedManagerMeta, 'feed', 'feeds.VideoFeed')
#print(django_get_model(*feed_model_path.split('.')))
return django_get_model(*feed_model_path.split('.'))
class VideoFeedMixin(VideoRelationsMixin, models.Model):
"""VideoFeed represents .
:Parameters:
- `media_url`: member's first name (required)
"""
content_url = models.TextField(null=True, blank=True, default='')
class Meta:
abstract = True
def __unicode__(self):
return self.post
def __str__(self):
return self.post
#Feed di tipo Video
class VideoFeed(Feed, VideoFeedMixin):
django_feed = models.ForeignKey(Feed, null=True, blank=True, on_delete=models.SET_NULL,
related_name='%(app_label)s_%(class)s_set')
# this is just required for easy explanation
class Meta(VideoFeedMixin.Meta):
abstract = False
μ΄κ²μ κ³ μ μ μΈ view.pyμ λλ€.
<strong i="6">@login_required</strong>
def feeds(request):
all_feeds = Feed.get_feeds()
paginator = Paginator(all_feeds, FEEDS_NUM_PAGES)
feeds = paginator.page(1)
from_feed = -1
vip = Feed.get_talentini(request.user)
user_vip = Feed.get_user_talentino(request.user)
if feeds:
from_feed = feeds[0].id
return render(request, 'feeds/feeds.html', {
'feeds': feeds,
'from_feed': from_feed,
'page': 1,
'vip':vip,
'user_vip':user_vip
})
λ΄κ° ν΄κ²°ν κ²μ μλ€!
κ·νμ μꡬ μ¬νμ μμ ν μ΄ν΄ν μλ μμμ§λ§ ν΄κ²°νμ ¨λ€λ λ€νμ λλ€. κΈ°λ₯μ μμ§ νμ€νμ§ μμ§λ§ ꡬννκΈ° μν΄ μ λ§ λ³΅μ‘ν κ²½λ‘λ₯Ό μ ννλ€κ³ μκ°ν©λλ€. μλ Feed λͺ¨λΈμ μΆμ λͺ¨λΈλ‘ λ³ννκ³ λ€λ₯Έ λͺ¨λΈμ μμν μλ μμ΅λλ€.
νΌλμ€λ½λ€μ μ£μ‘ν©λλ€ :( μμμ
2017-12-06 17:42 GMT+01:00 μΈλ°μ€μ°¬ λ μμ€ μμ€νΌλ
Έμ¬ <
μλ¦Ό@github.com>:
λλ λΉμ μ μꡬ μ¬νμ μμ ν μ΄ν΄ν μ μμμ§λ§ λΉμ μ κΈ°μκ² μκ°ν©λλ€
ν΄κ²°νμ΅λλ€. κΈ°λ₯μ μμ§ νμ€νμ§ μμ§λ§
ꡬννκΈ° μν΄ μ λ§ λ³΅μ‘ν κ²½λ‘λ₯Ό μ ννλ©΄
μλ νΌλ λͺ¨λΈμ μΆμ λͺ¨λΈλ‘ κ°μ Έμ€κ³ λ€λ₯Έ λͺ¨λΈμμ μμν©λλ€.β
μ€λ λλ₯Ό μμ±νκΈ° λλ¬Έμ μ΄ λ©μμ§λ₯Ό λ°λ κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈνμΈμ.
https://github.com/vitorfs/bootcamp/issues/131#issuecomment-349699018 ,
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/AVdMg0p3EAdKYXbMA6XV9WuRamCWcUU_ks5s9sQKgaJpZM4Q3oVG
.
@sebastian-code λ€λ₯Έ μ νμ νΌλλ μΌμ’ μ μλ€μ΄κΈ° λλ¬Έμ..
μ΄κ²μ κ΄λ¦¬μ ν¨λμ λ΄ μμ
λλ€. :)
μ λ§ λ©μ Έ 보μ λλ€. 곡μ ν΄ μ£Όμ μ κ°μ¬ν©λλ€. μ μ λ§νλ―μ΄, λλ λΉμ μ μ 체 μꡬ μ¬νκ³Ό λΉμ μ΄ λΉμ μ νλ‘μ νΈμ λν΄ μ€μ ν λͺ©νλ₯Ό μμ ν μ΄ν΄ν μ μμλ€κ³ μκ°ν©λλ€. μμ±λλ©΄ 보λ κ²μ΄ μ’μ κ²μ λλ€. κ·Έλμ λΉμ μ΄ κ·Έκ²μ κ°μ§κ³ μμ λ μ μκ² μλ €μ£Όμμμ€. μλ§λ μ¬κΈ°μμ λ°°μ°κ³ ꡬνν΄μΌ ν κ²μ΄ μμ κ²μ λλ€.
@Allan-Nava λλ λΉμ κ³Ό κ°μ λ€λ₯Έ μ νμ νΌλλ₯Ό λ§λ€ κ³νμ λλ€. μ°λ½μ² Facebookμ΄λ Skypeλ₯Ό 곡μ ν μ μμ΅λκΉ?
@feedgit 무μμ΄ νμνκ°μ?
λ΄ Skypeλ₯Ό μΆκ°νμμμ€: kai_trystan7 :)