我为我的表单编写了一个模板,如
<h1>{% block formtitle %}{% endblock %}</h1>
<form method="post" action="">
{% csrf_token %}
[stuff]
<button type="submit">{% block formbutton %}{% endblock %}</button>
</form>
现在我想使用相同的模板来创建和编辑对象,但是如何?
我尝试为
这样的创作创建模板{% extend "base.html" %}
{% include "form.html" %}
{% block formtitle %}Create a new MyObject{% endblock %}
{% block formbutton %}Create{% endblock %}
但我有一个空白页面......
答案 0 :(得分:1)
您必须{% extend "form.html" %}
才能覆盖这些块。仅对extend
声明中的模板覆盖块。
解决方案是为新表单创建一个新模板,扩展旧模板:
{% extend "base.html" %}
{% include "my_form.html" %}
# my_form.html
{% extend 'form.html' %}
{% block formtitle %}Create a new MyObject{% endblock %}
{% block formbutton %}Create{% endblock %}
或者将变量传递给include语句:
{% extend "base.html" %}
{% include "form.html" with formtitle='Create new MyObject' formbutton="My button title" %}
# form.html
<h1>{% block formtitle %}{{ formtitle }}{% endblock %}</h1>
<form method="post" action="">
{% csrf_token %}
[stuff]
<button type="submit">{% block formbutton %}{{ formbutton }}{% endblock %}</button>
</form>