我有一些模块,如果启用/禁用这些模块,则它们需要在前端网页上以不同的方式排列表格和iframe。为此,我设置了一个功能来检查启用/禁用了哪些模块,并为每个“集合”分配了一个编号,并将为每个“ set1.html”,“ set2.html”,“ set3”创建单独的模板。 html”,等等...
我想利用一个单一的视图,在该视图中我可以从我创建的函数中传递设置编号,但是我似乎不知道该怎么做。
def homeset(request):
return render(request, 'app/set1.html', {})
希望找出某种方式使我创建的函数返回“ 1”,以确定要加载哪个set#作为模板,并且不希望不必为每个所需的模板创建视图。
答案 0 :(得分:1)
仅此而已,您在渲染之前设置模板名称是否有问题?
def homeset(request):
# define 'my_set'
# define num
...
my_template_name = None
if num in my_set:
my_template_name = 'app/set{}.html'.format(num)
return render(request, my_template_name)
答案 1 :(得分:1)
看起来像斯科特·斯基尔斯(Scott Skiles)回答了您的问题,但另一种方法是使用单个基本模板和"include" templatetag。
您可以将设置号码传递给模板,并使用“ if” templatetag”为每个设置号码包括来自适当模板的内容。
{% if set_num == 1 %}
{% include "foo/bar.html" %}
{% elif set_num == 2 %}
{% include "foo/two.html" %}
{% endif %}