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 字典。