2016-09-15 2 views
0

Я хочу создать GenericFormMixin для Django, который я могу смешивать в CreateView и UpdateView, что позволит мне использовать шаблон общей формы, динамически настраивая такие вещи, как заголовок страницы, название формы, текст кнопки отправки, и т.д.Django Mixin для добавления переменных контекста

у меня есть следующие в mixins.py:

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

Вместо того, чтобы создать modelname_create.html и modelname_update.html для каждого CreateView или UpdateView у меня есть, я хочу, чтобы иметь возможность использовать 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

Определить get_context_data в вашем микшине. Он должен вызывать метод суперкласса, добавлять его элементы в словарь, возвращаемый оттуда, а затем возвращать dict.

+0

спасибо, что работает! –