Bootcamp: تغذية بأنواع مختلفة من الأعلاف

تم إنشاؤها على ٦ ديسمبر ٢٠١٧  ·  9تعليقات  ·  مصدر: vitorfs/bootcamp

أحاول تنفيذ 3 أنواع من الخلاصات:

  1. الحالة (موجز الرسائل)
  2. تغذية الفيديو
  3. تغذية الصورة

أنا باستخدام فئة الأعلاف، ونوع العلف ولكل نوع فئة محددة ولكن أنا لا أعرف كيف لربط الدرجة تغذية مع كل فئة نوع (فئة فيديو، والطبقة صورة)

أي اقتراح؟

شكرا على الدعم

Support enhancement question

ال 9 كومينتر

@ 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
        })

لا شيء حلله!

screen shot 2017-12-06 at 15 57 52

لم أتمكن من فهم متطلباتك تمامًا ، لكنني سعيد لأنك قمت بحلها. الوظيفة ، لست متأكدًا بعد من ذلك ، لكنني أعتقد أنك اخترت مسارًا معقدًا حقًا لتنفيذه ، يمكنك أيضًا تحويل نموذج الخلاصة الأصلي إلى نموذج مجرد وترث منه النماذج الأخرى.

محيرة ، آسف :( أعرف

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 لأن النوع الآخر من الأعلاف هو نوع من الابن ..

هذا هو المثال الخاص بي في لوحة الإدارة :)
screen shot 2017-12-06 at 17 17 43
screen shot 2017-12-06 at 17 17 31

يبدو لطيفًا حقًا ، شكرًا على المشاركة ؛ كما ذكرت من قبل ، أعتقد أنني لم أتمكن من فهم متطلباتك بالكامل والأهداف التي حددتها لمشروعك. سيكون من الرائع رؤيته عند الانتهاء ، لذا أخبرني عندما يكون لديك ، ربما هناك شيء لتتعلم منه وتنفيذه هنا.

@ Allan-Nava أخطط لإنشاء نوع مختلف من الخلاصات مثلك. هل يمكن أن تشاركني جهة الاتصال الخاصة بك في الفيسبوك أو سكايب؟

feedgit ماذا تحتاج؟

الرجاء إضافة سكايب الخاص بي: kai_trystan7 :)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

mwanjajoel picture mwanjajoel  ·  5تعليقات

norouzzadeh picture norouzzadeh  ·  3تعليقات

Shekharnunia picture Shekharnunia  ·  10تعليقات

Allan-Nava picture Allan-Nava  ·  14تعليقات

sebastian-code picture sebastian-code  ·  11تعليقات