2 回答
TA贡献1848条经验 获得超6个赞
模型中的images字段与关联,但是您将其视为关联(根据模板中的判断)。BlogForeignKeyImageManyToMany{% with blog.images_set.all ... %}
根据您对关系的建模方式,您可以将images字段更改为:
images = models.ForeignKey('myapp.Image')
到
images = models.ManyToManyField('myapp.Image')
迁移数据库,然后您可以使用
{% with blog.images.all ... %}
在您的模板中。这将表明一个博客可以具有多个图像,并且一个图像可以属于多个博客。或者,您可以将关系移动到Image模型:
class Image(models.Model):
...
blog = models.ForeignKey(Blog)
并使用:
{% with blog.image_set.all ... %}
在您的模板中(请参阅反转文档中的关系)。这将表明一个博客可以具有多个图像,但是只有一个图像属于一个博客文章。
TA贡献1883条经验 获得超3个赞
您的模型坏了。按照您的方式,一个图像可以有多个博客,但一个博客只能有一个图像。您需要反过来,因此应该在Blog模型上定义ForeignKey,指向Image。然后您的模板将按原样工作。
进一步说明:请不要获取所有Blog,然后再调用reversed
它们。那简直太低效了。相反,让数据库以相反的顺序返回它们:
Blog.objects.all().reverse()
更好的是,在模型上定义创建时间字段并以此顺序。
添加回答
举报