我正在尝试向模板添加一些图库,但页面上图库的位置需要由用户定义。有时它会位于文本的顶部,有时位于页面文本的末尾,有时位于文本的中间位置。在文本字段中,用户将添加此行#foto
并根据我需要渲染图库的那一行的位置。例如:
some paragraph written by user in the text field...
#foto
some another paragraph written by user ...
现在最简单的方法是在视图中使用include标记替换#foto
。有点像:
foto = "{% include 'includes/gallery.html' %}"
xx = "#foto"
post.text = post.text.replace(xx, foto)
但是这个例子不起作用,因为include标签不能以这种方式调用。它呈现为纯文本{%include'includes / gallery.html'%}。可以执行的操作包括#foto
文本位置上预期的标记。
答案 0 :(得分:0)
在视图中指定渲染的模板:
...
from django.template.loader import render_to_string
"""
Get the items from the model, define your query
"""
gallery = GalleryModel.objects.all()
"""
Render gallery template and assign to foto, which then you
can inject in the basic template
"""
foto = render_to_string('includes/gallery.html', {'gallery': gallery})
...
然后在你的模板中:
{{ foto }}