Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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中访问多对多关系_Django_Many To Many - Fatal编程技术网

在Django中访问多对多关系

在Django中访问多对多关系,django,many-to-many,Django,Many To Many,我建立了以下几个模型: 页面 画廊 形象 画廊和图像共享多对多关系 页面可以有1个或0个库 我创建了一个带有一些图像的图库,并将其附加到页面对象上 但是,在模板中显示它时遇到问题 有人能帮忙吗 我的页面视图如下所示: def detail(request, page_id): p = get_object_or_404(Page, pk=page_id) return render_to_response('page/detail.html', {'page': p},

我建立了以下几个模型:

页面

画廊

形象

画廊和图像共享多对多关系

页面可以有1个或0个库

我创建了一个带有一些图像的图库,并将其附加到页面对象上

但是,在模板中显示它时遇到问题

有人能帮忙吗

我的页面视图如下所示:

def detail(request, page_id):
p = get_object_or_404(Page, pk=page_id)
return render_to_response('page/detail.html', {'page': p},
                      context_instance=RequestContext(request))
{% for image in page.gallery.images.all %}
    <a rel="gallery" href="{{ STATIC_URL }}{{ image.image }}"></a>
{% endfor %}
以及模板:

{% block images %}
{% if page.gallery %}
{% for image in page.gallery.image_set.all %}
<a rel="gallery" href="{{ STATIC_URL }}{{ image.image }}"></a>
{% endfor %}
{% endif %}
{% endblock %}`
{%block images%}
{%if page.gallery%}
{%用于page.gallery.image\u set.all%中的图像
{%endfor%}
{%endif%}
{%endblock%}`
如果我尝试在If块中输出一些文本,结果是OK,但不是在循环中

如果您有任何关于如何使其正常工作/将其整理好的建议,我们将不胜感激


谢谢。

如果
库图像
的关系是多对多的,我猜您的
模型上有一个
m2m
字段,其中m2m管理器就是字段本身。可以像查询任何其他
QuerySet
model\u instance.mym2mmfield.filter()
一样查询管理器

如果您的
ManyToManyField
Gallery
模型上被调用
images
,您的模板将如下所示:

def detail(request, page_id):
p = get_object_or_404(Page, pk=page_id)
return render_to_response('page/detail.html', {'page': p},
                      context_instance=RequestContext(request))
{% for image in page.gallery.images.all %}
    <a rel="gallery" href="{{ STATIC_URL }}{{ image.image }}"></a>
{% endfor %}

您的问题可能在于从页面访问库的方式。在模板中,尝试以下操作,查看是否得到任何输出:

{{ page.gallery }}
在某些情况下,模板中的某些错误可能会被忽略

另外,我有点好奇你的页面和图库是如何关联的?页面模型是否有一个名为“gallery”的OneToOneField?图库有外键指向页面吗?在后一种情况下,您可以通过以下方式访问与页面关联的库:

{{ page.gallery_set.all }}
如果您提供了一些关于模型上字段的附加信息,那么回答这个问题会更容易