Django Mixin 添加上下文变量
Django Mixin to add context variables
我想为 Django 创建一个 GenericFormMixin,我可以混合到 CreateView 和 UpdateView 中,这样我就可以通过动态设置页面标题、表单标题、提交按钮文本等来使用通用表单模板。
我在 mixins.py 中有以下内容:
class GenericFormMixin(object):
page_title = ''
form_title = ''
submit_button_text = ''
我希望能够使用 generic_form.html 来使用 modelname_create.html 和 modelname_update.html 来为我拥有的每个 CreateView 或 UpdateView 创建一个 modelname_create.html 和 modelname_update.html动态创建适当填充模板的上下文:
{% extends "base.html" %}
{% block title %}{{ page_title }}{% endblock title %}
{% block content %}
<div class="panel panel-primary">
<div class="panel-heading">{{ form_title }}</div>
<div class="panel-body">
<form method="post" action=".">
{{ form }}
{% csrf_token %}
<button type="submit" class="btn btn-primary">{{ submit_button_text }}</button>
</form>
</div>
</div>
{% endblock content %}
我的问题是:现在我已经创建了 mixin,如何将变量放入 CreateView 和 UpdateView 的模板上下文中?
在你的 mixin 中定义 get_context_data
。它应该调用超类方法,将其元素添加到字典 returned 从那里,然后 return 字典。
我想为 Django 创建一个 GenericFormMixin,我可以混合到 CreateView 和 UpdateView 中,这样我就可以通过动态设置页面标题、表单标题、提交按钮文本等来使用通用表单模板。
我在 mixins.py 中有以下内容:
class GenericFormMixin(object):
page_title = ''
form_title = ''
submit_button_text = ''
我希望能够使用 generic_form.html 来使用 modelname_create.html 和 modelname_update.html 来为我拥有的每个 CreateView 或 UpdateView 创建一个 modelname_create.html 和 modelname_update.html动态创建适当填充模板的上下文:
{% extends "base.html" %}
{% block title %}{{ page_title }}{% endblock title %}
{% block content %}
<div class="panel panel-primary">
<div class="panel-heading">{{ form_title }}</div>
<div class="panel-body">
<form method="post" action=".">
{{ form }}
{% csrf_token %}
<button type="submit" class="btn btn-primary">{{ submit_button_text }}</button>
</form>
</div>
</div>
{% endblock content %}
我的问题是:现在我已经创建了 mixin,如何将变量放入 CreateView 和 UpdateView 的模板上下文中?
在你的 mixin 中定义 get_context_data
。它应该调用超类方法,将其元素添加到字典 returned 从那里,然后 return 字典。