如何在Django中的模板中更改子模板?

时间:2018-07-23 10:19:20

标签: django django-templates django-views

我尝试制作一个包含模板的模板。是否可以通过html文件名来包含?

现在我使用此代码。

{% include "edit_course.html" %}

但是我想用上下文值代替“ edit_course.html”。

{% include {{name}} %}    

我该怎么做?

编辑:这是我的views.py

from django.shortcuts import render
def index(request):
    if request.method == "POST":
        print("POST")
        return render(request, 'main.html')
    else:
        print(request.GET.get('opt', ''))
        if request.GET.get('opt', '') == 'new_student':
            return render(request, 'main.html', {'url': 'new_profile.html',})
        elif request.GET.get('opt', '') == 'new_crew':
            pass
        elif request.GET.get('opt', '') == 'new_course':
            pass
        elif request.GET.get('opt', '') == 'edit_student':
            pass
        elif request.GET.get('opt', '') == 'edit_course':
            pass
        elif request.GET.get('opt', '') == 'report':
            pass
        else:
            pass

        return render(request, 'main.html')

2 个答案:

答案 0 :(得分:2)

将其放入模板:

{% include url %}

但是最好将'url'重命名为'template_name'或此字符串return render(request, 'main.html', {'url': 'new_profile.html',})

中的内容

答案 1 :(得分:1)

您可以通过子模板的名称传递到主模板中的主模板来做到这一点。视图,如下所示加载 主模板

from django.shortcuts import render
render(request, "mainTemplate.html", context={"name":"edit_course.html"})

在您的mainTemplate.html中:

{% with name as sub_template %}
    {% include sub_template %}
{% endwith %}