我有一個連接表:從連接表遵循一個外鍵來獲得屬性
class ReviewTag(models.Model):
review = models.ForeignKey(Review)
tag = models.ForeignKey(Tag)
我做下面讓ReviewTag對象的列表:
review.reviewtag_set.all()
如果標籤有一個屬性叫做'名字'。我如何從對象列表中創建名稱列表?
我有一個連接表:從連接表遵循一個外鍵來獲得屬性
class ReviewTag(models.Model):
review = models.ForeignKey(Review)
tag = models.ForeignKey(Tag)
我做下面讓ReviewTag對象的列表:
review.reviewtag_set.all()
如果標籤有一個屬性叫做'名字'。我如何從對象列表中創建名稱列表?
[reviewtag.tag.name for reviewtag in review.reviewtag_set.all().select_related()]
或
[tag.name for tag in Tag.objects.filter(reviewtag__review=review)]
或
Tag.objects.filter(reviewtag__review=review).values_list('name', flat=True)
的Django開發版本有values
支持跨JOIN的
http://docs.djangoproject.com/en/dev/ref/models/querysets/#values
這將讓你做
review.reviewtag_set.all().values('tag__name')
好東西。
爲了您的評論類,您可以添加一個M2M通過attr。 http://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships
class Review(models.Model):
..
tags = models.ManyToMany('yourapp.Tag', through='ReviewTag')
review.tags.values_list('name', flat=True)
然後會給你與此相關的審覈標籤名稱的列表懶,我相信。