Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:如何通过模板通过ForeignKey连接数据?_Django_Templates_Foreign Keys_Django Related Manager - Fatal编程技术网

Django:如何通过模板通过ForeignKey连接数据?

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

几个星期以来,我一直在学习Python和Django。到目前为止,阅读其他用户的问题和答案已经足够了。但现在我自己的第一个问题的时刻已经到来

我会尽力描述我的问题。我的问题是我无法查询或获取我想要的数据

我想获取类Image的第一个对象的url,该对象通过ForeignKey关联到库,通过ForeignKey关联到类条目

以下是迄今为止的models.py:

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文档页面上没有找到任何东西。是的,添加了一个链接。希望有帮助!谢谢,谢谢,谢谢!:)