Джанго: Форма в базовом шаблоне - PullRequest
0 голосов
/ 22 ноября 2011

Привет, люди из Stackoverflow,

В моем проекте Django я создал форму для регистрации пользователей.Эти формы могут быть вызваны с помощью специального метода url -> view.После того, как пользователь заполнил форму, нажал на кнопку submit, будет вызван тот же метод представления, и если form.is_valid () имеет значение true, тогда ... просто стандартная форма, ничего особенного.

Теперь яЯ хотел бы интегрировать эту маленькую форму на каждой странице, и поэтому я хотел бы добавить ее в базовый шаблон.Я прочитал, что могу заполнить переменную формы через context_processor, но могу ли я определить процесс после отправки формы?

Я создал context_processor.py (как показано ниже), добавил context_processor кTEMPLATE_CONTEXT_PROCESSOR dir в настройках (как описано здесь ):

from app.forms import Form

def registration_form(request):
return {
        registration_form : Form()
        }

Прежде всего, переменная формы не будет отображаться.А во-вторых, как мне управлять отправкой формы?

Я думаю, что я неправильно понимаю context_processor из Django и был бы более чем рад комментариям по поводу всего процесса.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 22 ноября 2011

как вы пытаетесь получить доступ к форме в вашем шаблоне? вы, вероятно, не хотите использовать имя функции в качестве ключа словаря, может быть, вы хотите

return {
    'registration_form': Form(),
}

не уверен, что вы подразумеваете под манипулированием отправкой формы, но я думаю, вам понадобится вся логика обработки формы в вашем контекстном процессоре

if request.POST:
    form = Form(request.POST)
    # validate etc
0 голосов
/ 11 сентября 2013

вместо создания контекстного процессора, создайте шаблонный тег для этой цели и поместите тег в base.html

для отправки формы и отображения ошибок, используйте ajax и внешние проверки.

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