Django:如何通过模板通过ForeignKey连接数据?
几个星期以来,我一直在学习Python和Django。到目前为止,阅读其他用户的问题和答案已经足够了。但现在我自己的第一个问题的时刻已经到来 我会尽力描述我的问题。我的问题是我无法查询或获取我想要的数据 我想获取类Image的第一个对象的url,该对象通过ForeignKey关联到库,通过ForeignKey关联到类条目 以下是迄今为止的models.py:Django:如何通过模板通过ForeignKey连接数据?,django,templates,foreign-keys,django-related-manager,Django,Templates,Foreign Keys,Django Related Manager,几个星期以来,我一直在学习Python和Django。到目前为止,阅读其他用户的问题和答案已经足够了。但现在我自己的第一个问题的时刻已经到来 我会尽力描述我的问题。我的问题是我无法查询或获取我想要的数据 我想获取类Image的第一个对象的url,该对象通过ForeignKey关联到库,通过ForeignKey关联到类条目 以下是迄今为止的models.py: class BlogEntry(models.Model): ... title = models.CharField(max
class BlogEntry(models.Model):
...
title = models.CharField(max_length=100)
...
class Gallery(models.Model):
entry = models.ForeignKey('BlogEntry')
class Image(models.Model):
gallery = models.ForeignKey('Gallery')
picture = models.ImageField(upload_to='img')
观点:
def view(request):
return render_to_response('mainview.html', {
'entryquery': BlogEntry.objects.all(),
}
)
模板:
{% for item in entryquery %}
<h1>{{ item.title }}</h1>
<img src="{{ item.WHAT TO ENTER HERE? :) }}" />
{% endfor %}
{%for entryquery%中的项]
{{item.title}
{%endfor%}
很清楚我想要什么?
有人能帮我写一个简短的解释吗
问候
巴斯蒂安您可以像这样做:item.gallery\u set.all.0.image\u set.all.0.picture.img
。然而,在BlogEntry上定义一个查找并返回相应图片的方法可能更容易,这样您就可以只执行项
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')
您必须在库模型和模板视图的外键中添加相关的_名称:
{% for g in blogentry.galleries.all %}
{{g.name}}
{%for i in g.images.all %}
<img src="{{i.picture.url}}">{{i.picture}}</img>
{% endfor %}
{% endfor %}
{blogentry.galleries.all%中g的%
{{g.name}}
{%g.images.all%}
{{i.picture}
{%endfor%}
{%endfor%}
非常感谢您的快速回答:)。我不完全理解这一行代码。你能给我一个链接到相关成员的访问文档吗?我在Django文档页面上没有找到任何东西。是的,添加了一个链接。希望有帮助!谢谢,谢谢,谢谢!:)