У меня есть две модели User и VideoData. Эти две модели содержат сведения о каждом пользователе и просмотрели видео от этого пользователя. Я использовал отношение «многие ко многим». Теперь я хочу фильтровать 10 лучших видеороликов по количеству пользователей.Аннотировать многие из многих отношений в Django
class User(models.Model):
user_id = models.CharField(max_length=40,unique=True)
user_name = models.CharField(max_length=40)
user_email = models.EmailField()
user_city = models.CharField(max_length=40)
videos_watched = models.ManyToManyField('VideoData', through='WatchedVideo')
class Meta:
ordering = ['user_id']
verbose_name = 'User MetaData'
verbose_name_plural = 'Users MetaData'
def __unicode__(self):
return self.user_id
class VideoData(models.Model):
video_id = models.CharField(max_length=40,unique=True)
video_name = models.CharField(max_length=40)
class Meta:
verbose_name = 'User_Video MetaData'
verbose_name_plural = 'Users_Video MetaData'
def __unicode__(self):
return self.video_name
class WatchedVideo(models.Model):
user = models.ForeignKey(User, to_field = 'user_id')
videoData = models.ForeignKey(VideoData, to_field = 'video_id')
time = models.PositiveIntegerField(null = True)
Как я могу описать 10 лучших видеороликов и количество пользователей, просмотренных этими видео?
Что такое '' time' в WatchedVideo'? Это количество раз, когда пользователь просматривал видео? – cezar
@cezar не просматривается время i.e на сколько часов просматривается видео. – Naresh
Просто замечание об условных обозначениях кодирования: было бы лучше переименовать 'videoData' в' WatchedVideo' в 'video_data', чтобы соответствовать остальным. – cezar