Импортировать формы.форм в шаблон - PullRequest
0 голосов
/ 09 октября 2011

Впервые в Django, извините, если это тривиально

У меня есть шаблон "base.html", который расширен многими другими шаблонами.В этом шаблоне «base.html» у меня есть форма, сгенерированная из производного класса «forms.Form» под названием «SearchForm»
.Вопрос заключается в следующем: можно ли импортировать «SearchForm» в шаблон «base.html» вместо передачи «Searchform» в качестве контекста для каждого представления, производного от «base.html»

Ответы [ 3 ]

2 голосов
/ 09 октября 2011

Использование процессора контекста шаблона Django .

Вот простой пример:

def search_form_context_processor(request):
    return {'form': SearchForm() }

Затем обновите settings.py с помощью

TEMPLATE_CONTEXT_PROCESSORS = (
    ....
    my_module.search_form_context_processor,
    ....
)

https://docs.djangoproject.com/en/dev/ref/settings/#template-context-processors

После этого {{ form }} будет доступен для любых шаблонов, которые вы визуализируете, используя render_to_response с переданным RequestContext.

1 голос
/ 09 октября 2011

Как писал Исаак Келли, вы можете создать тег шаблона, который добавит форму в ваш контекст.Документы: здесь .

Чтобы добавить форму в свой контекст, вы можете написать

class FormNode(template.Node):
    def render(self, context):
        context['form'] = MyForm()
        return ''

def add_form_to_context(parser, token):
    return FormNode()
0 голосов
/ 09 октября 2011

Другие варианты (кроме @Derek's) заключаются в том, чтобы иметь пользовательский тег шаблона, который либо A) записывает html формы, либо B) добавляет форму в контекст страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...