我有兩個模型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個視頻和觀看這些視頻的用戶數?從Django的ORM
什麼是'time'在'WatchedVideo'?這是用戶觀看視頻的次數嗎? – cezar
@cezar沒有時間觀看時間,即視頻觀看了多少小時。 – Naresh
只是對編碼約定的一個評論:最好將'WatchedVideo'中的'videoData'重命名爲'video_data'以符合其餘的。 – cezar