我有这样的模特:
class PortfolioAlbum(models.Model):
title = models.CharField()
class Portfolio(models.Model):
title = models.CharField()
photo = models.ManyToManyField(PortfolioAlbum, through='AlbumPhotos')
class AlbumPhotos(models.Model):
album = models.ForeignKey(PortfolioAlbum)
portfolio = models.ForeignKey(Portfolio)
title = models.CharField()
photo = ThumbnailerImageField()
如何在我的“投资组合”页面的上下文中获取我的AlbumPhotos(字段 - “照片”)?
我最后一次尝试过:
<ul>
{% for albumphotos in portfolios %}
<li><img src="{{ albumphotos.photo.image150x150.url }}"></li>
{% endfor %}
</ul>
..也有一些例子,但这是错误的。
答案 0 :(得分:0)
Photo
应该是一个完全成熟的模型,并且与Album
有一个外键或m2m关系。
无论如何,要了解模型的记录,请执行以下操作:
portfolio = Portfolio.objects.get(…)
photos = portfolio.photo.through.filter(portfolio=portfolio)
这真是奇怪的关系......
相反,你应该写:
portfolio = Portfolio.objects.get(…)
for album in portfolio:
for photo in album:
print photo
答案 1 :(得分:0)
来自https://docs.djangoproject.com/en/1.7/topics/db/queries/#backwards-related-objects
使用:
protifolio.albumphoto_set.all()
将所有AlbumPhoto附加到protfolio实例。当使用多对一关系时,Django将通过 foo_set 自动设置反向关系。
很晚,但无论如何,我发布了记录。