2
我有以下實體:Django的許多一對多查詢關係的實體
- 影片
- 標籤
- 關係的實體 - VideoTags
這裏的模式:
class Tag(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, unique=True)
class Meta:
db_table = u'tags'
class Video(models.Model):
guid = models.CharField(max_length=36, primary_key=True)
title = models.CharField(max_length=600)
tags = models.ManyToManyField(Tag, through='VideoTag')
class Meta:
db_table = u'videos'
class VideoTag(models.Model):
guid = models.CharField(max_length=36, primary_key=True)
tag = models.ForeignKey(Tag)
video = models.ForeignKey(Video)
weight = models.FloatField()
class Meta:
db_table = u'video_tags'
現在,這一切運作良好w母雞創建實體。現在說我想通過它的Id拖動視頻並遍歷它的標籤。
當我這樣做:
video = Video.objects.get(pk=1)
tags = video.tags.all()
我其實獲取標記實體的名單,因爲它們都涉及到視頻,而不是關係的實體VideoTag。我想訪問視頻的標籤,更重要的是訪問關係表上的其他字段之一 - 重量。我無法這樣做,因爲視頻上的標籤屬性的類型爲標籤。
謝謝:)