Dan*_*Dan 2 django many-to-many
我设置了几个模型如下:
页
画廊
图片
Gallery和Image分享了多对多的关系.
页面可以有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))
Run Code Online (Sandbox Code Playgroud)
和模板:
{% 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 %}`
Run Code Online (Sandbox Code Playgroud)
如果我尝试在IF块中输出一些文本,它就会出现,但不在循环内.
任何关于让它工作/一般整理它的建议将不胜感激.
谢谢.
如果Gallery-Image关系是多对多,我猜你m2m的Gallery模型上有一个字段,m2m管理器就是字段本身.可以像其他任何人一样查询经理QuerySet:model_instance.mym2mfield.filter().
如果在模型上ManyToManyField调用images了Gallery您的模板,那么您的模板将如下所示:
{% for image in page.gallery.images.all %}
<a rel="gallery" href="{{ STATIC_URL }}{{ image.image }}"></a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
如果您ManyToManyField的Image模型在您的模型上,则默认名称将如您所述,除非您指定了related_name在哪种情况下您使用该名称.
{% for image in page.gallery.image_set.all %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3253 次 |
| 最近记录: |