Django: How to get data connected by ForeignKey via Template?

心已入冬 提交于 2019-11-30 12:07:51

You can access related members just like other attributes in a template, so you can do something like: item.gallery_set.all.0.image_set.all.0.picture.img. However, it might be easier to define a method on BlogEntry that looked up and returned the appropriate picture, so that you could just do item.first_image or something like that

Dimitris Kougioumtzis
class BlogEntry(models.Model):
    ...
    title = models.CharField(max_length=100)
    ...

class Gallery(models.Model):
    entry = models.ForeignKey('BlogEntry',related_name="galleries")

class Image(models.Model):
    gallery = models.ForeignKey('Gallery',related_name='images')
    picture = models.ImageField(upload_to='img')

You have to add related_name in foreign key in gallery model and in template view:

{% for g in blogentry.galleries.all %}
    {{g.name}}
        {%for i in g.images.all %}
            <img src="{{i.picture.url}}">{{i.picture}}</img>
        {% endfor %}
{% endfor %}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!