Я новичок в Django (1.5), и я пытаюсь сделать базовую форму POST. У меня есть TemplateView
, который реализует форму (передается в шаблон с использованием get_context_data
).Доступ к данным POST за пределами post() в Django 1.5 TemplateView
Если форма по какой-либо причине не сработала (например, ошибка проверки), я хочу снова отобразить форму, содержащую данные, которые пользователь заполнил. Когда это удастся, я хочу перенаправить на страницу успеха (, например только что созданный элемент).
Вот что я сделал до сих пор:
class WriteForm(forms.Form):
subject = forms.CharField()
text = forms.CharField(widget=forms.Textarea)
# some other stuff
class WriteView(MailboxView):
# MailboxView extends TemplateView and defines some context
template_name = 'messages/write.html'
form_data = None
def post(self, request, *args, **kwargs):
# treat form data...
# lets make things simple and just assume the form fails
# I want to do something like that:
self.form_data = request.POST
# should I return something?
def get_context_data(self, **kwargs):
context = super(WriteView, self).get_context_data(**kwargs)
if self.form_data is None:
context['form'] = WriteForm()
else:
context['form'] = WriteForm(self.form_data)
return context
Спасибо заранее!
Если вы новичок в Django, я предлагаю не использовать классические представления прямо перед тем, как вы почувствуете себя комфортно, используя простые функции просмотра. То, что вы просите, довольно стандартное, поэтому смотреть на простые примеры использования форм должно быть достаточно – yuvi