2011-03-01 21 views
0

我有一個連接表:從連接表遵循一個外鍵來獲得屬性

class ReviewTag(models.Model): 

    review = models.ForeignKey(Review) 
    tag = models.ForeignKey(Tag) 

我做下面讓ReviewTag對象的列表:

review.reviewtag_set.all() 

如果標籤有一個屬性叫做'名字'。我如何從對象列表中創建名稱列表?

回答

1
[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') 

好東西。