【发布时间】:2018-05-20 03:54:52
【问题描述】:
目前我正在处理一个非常复杂的页面,当用户选择页面上显示的食谱时需要更新该页面。选择食谱后,价格和食谱名称需要显示在页面上。
我的想法是渲染多个扩展/包含模板,每个模板负责自己的网页部分。但是,我面临一些问题:
- 我需要多个视图函数来处理所有模板的数据。
- 我需要将请求传递给多个视图函数,以便它们返回包含正确数据的模板
- 其中一个函数不仅接受请求,还接受模型对象的 slug 来更新页面上的数据。
问题:
- 如何将来自不同视图函数的响应/数据相互发送?
- 如何将请求传递给多个函数?
- extends 的呈现是否也确保 base.html 被呈现?
- extends 是正确使用还是我应该使用 include?li>
到目前为止我已经想到了这个系统:
base.html
<body>
{% block extend1 %}
{% endblock %}
{% block extend2 %}
{% endblock %}
{% block extend3 %}
{% endblock %}
</body>
extend1.html(3 个扩展的示例)
{% extends base.html %}
{% block extend1 %}
#html code
{% endblock
views.py
def extend1(request):
#do something
template = 'extend1.html'
context = a, b, c
return render(template.render(context))
def extend2(request):
#do something
template = 'extend2.html'
context = d, e, f
return render(template.render(context))
def extend3(request, slug):
#do something
template = 'extend3.html'
context = g, h, i
return render(template.render(context))
【问题讨论】:
-
很难说出您想要实现的目标-“需要根据用户输入更新的多个区域”您的意思是动态的吗?无需重新加载页面?多视图部分几乎肯定也是一种误解......您不需要调用多个视图来渲染一个模板
-
你显然不明白 Django 是如何工作的。如果你不从学习 django(使用官方教程和文档)开始,你只会浪费你自己的时间和每个人阅读你的问题并试图回答它们的时间。
标签: python django django-templates