2016-09-15 12 views
0

Django用のGenericFormMixinを作成して、CreateViewとUpdateViewに混在させて、ページタイトル、フォームタイトル、送信ボタンテキストなどを動的に設定することで一般的なフォームテンプレートを使用できるようにしたい。などDjango Mixinをコンテキスト変数に追加する

私はmixins.pyに次き

:代わりに私が持っているすべてのCREATEVIEWまたはUpdateViewためmodelname_create.htmlとmodelname_update.htmlを作成することの

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

、私が使用できるようにしたいです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 %} 

私の質問は:今、私はミックスインを作成したことを、どのように私はCREATEVIEWとUpdateViewのテンプレートコンテキストに変数を得るのですか?

答えて

2

あなたのmixinにget_context_dataを定義してください。スーパークラスメソッドを呼び出し、そこから返されたディクショナリにその要素を追加して、dictを返す必要があります。

+0

ありがとうございました! –

関連する問題