أحاول تنفيذ 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
هذه طريقة عرض كلاسيكية
<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
})
لا شيء حلله!
لم أتمكن من فهم متطلباتك تمامًا ، لكنني سعيد لأنك قمت بحلها. الوظيفة ، لست متأكدًا بعد من ذلك ، لكنني أعتقد أنك اخترت مسارًا معقدًا حقًا لتنفيذه ، يمكنك أيضًا تحويل نموذج الخلاصة الأصلي إلى نموذج مجرد وترث منه النماذج الأخرى.
محيرة ، آسف :( أعرف
2017-12-06 17:42 GMT + 01: 00 سيباستيان رييس إسبينوزا <
[email protected]>:
لم أتمكن من فهم متطلباتك تمامًا ، لكنني سعيد لك
حلها. الوظيفة ، لست متأكدًا بعد من ذلك ، لكنني أعتقد أنك
اختر مسارًا معقدًا حقًا لتنفيذه ، يمكنك أيضًا تحويل
نموذج تغذية أصلي إلى نموذج مجردة وترث منه النماذج الأخرى.-
أنت تتلقى هذا لأنك قمت بتأليف الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/vitorfs/bootcamp/issues/131#issuecomment-349699018 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AVdMg0p3EAdKYXbMA6XV9WuRamCWcU_ks5s9sQKgaJpZM4Q3oVG
.
@ sebastian-code لأن النوع الآخر من الأعلاف هو نوع من الابن ..
هذا هو المثال الخاص بي في لوحة الإدارة :)
يبدو لطيفًا حقًا ، شكرًا على المشاركة ؛ كما ذكرت من قبل ، أعتقد أنني لم أتمكن من فهم متطلباتك بالكامل والأهداف التي حددتها لمشروعك. سيكون من الرائع رؤيته عند الانتهاء ، لذا أخبرني عندما يكون لديك ، ربما هناك شيء لتتعلم منه وتنفيذه هنا.
@ Allan-Nava أخطط لإنشاء نوع مختلف من الخلاصات مثلك. هل يمكن أن تشاركني جهة الاتصال الخاصة بك في الفيسبوك أو سكايب؟
feedgit ماذا تحتاج؟
الرجاء إضافة سكايب الخاص بي: kai_trystan7 :)