Saya mencoba menerapkan 3 jenis umpan:
Saya menggunakan kelas umpan , jenis umpan dan untuk setiap jenis kelas tertentu tetapi saya tidak tahu bagaimana menghubungkan kelas umpan dengan setiap kelas jenis (kelas video, kelas gambar)
Ada saran?
Terima kasih atas dukungannya
@sebastian-code Saya menyadari fitur ini, tetapi saya tidak tahu bagaimana saya bisa mendapatkan bidang tambahan dari umpan gambar atau umpan video di dalam tampilan.
Ini kode saya:
<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
Ini adalah tampilan klasik.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
})
Tidak ada yang saya pecahkan!
Saya tidak dapat memahami sepenuhnya kebutuhan Anda, tetapi saya senang Anda menyelesaikannya. Fungsionalitasnya, saya belum yakin tentangnya, tetapi saya pikir Anda memilih jalur yang sangat kompleks untuk mengimplementasikannya, Anda juga dapat mengubah model Feed asli menjadi model abstrak dan mewarisi model lainnya.
Membingungkan, maaf :( aku tahu
06-12-2017 17:42 GMT+01:00 Sebastian Reyes Espinosa <
[email protected]>:
Saya tidak dapat memahami sepenuhnya kebutuhan Anda, tetapi saya senang Anda
memecahkannya. Fungsionalitasnya, saya belum yakin tentang itu, tapi saya pikir Anda
memilih jalur yang sangat kompleks untuk mengimplementasikannya, Anda juga dapat mengubah
model Feed asli ke model abstrak dan mewarisi model lainnya.—
Anda menerima ini karena Anda yang menulis utas.
Balas email ini secara langsung, lihat di GitHub
https://github.com/vitorfs/bootcamp/issues/131#issuecomment-349699018 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AVdMg0p3EAdKYXbMA6XV9WuRamCWcUU_ks5s9sQKgaJpZM4Q3oVG
.
@sebastian-code Karena jenis feed yang lain adalah jenis anak..
Ini adalah contoh saya di panel admin :)
Kelihatannya sangat bagus, terima kasih telah berbagi; seperti yang saya nyatakan sebelumnya, saya pikir saya belum dapat memahami sepenuhnya seluruh kebutuhan Anda dan tujuan yang telah Anda tetapkan untuk proyek Anda. Akan menyenangkan untuk melihatnya setelah selesai, jadi beri tahu saya ketika Anda memilikinya, mungkin ada sesuatu untuk dipelajari dan diterapkan di sini.
@Allan-Nava Saya berencana membuat berbagai jenis umpan seperti Anda. Bisakah Anda membagikan saya kontak Anda facebook atau Skype?
@feedgit Apa yang Anda butuhkan?
Tolong Tambahkan Skype saya: kai_trystan7 :)