2016-09-15 48 views
0

我想爲Django創建一個GenericFormMixin,我可以將它們混合到CreateView和UpdateView中,通過動態設置頁面標題,表單標題,提交按鈕文本等內容來使用通用表單模板。等Django Mixin添加上下文變量

我有以下的mixins.py:

class GenericFormMixin(object): 
    page_title = '' 
    form_title = '' 
    submit_button_text = '' 

而不必創建一個modelname_create.html和modelname_update.html爲每CreateView的或更新視圖我的,我希望能夠用generic_form.html將在其上下文中使用mixin的變量來動態創建適當填充的模板:

{% 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的模板上下文中?

回答

2

在你的混合中定義get_context_data。它應該調用超類方法,將它的元素添加到從那裏返回的字典中,然後返回字典。

+0

謝謝,這工作! –