私は Django (1.5) が初めてで、基本的な POST フォームを実行しようとしています。フォームをTemplateView
実装する があります (を使用してテンプレートに渡されget_context_data
ます)。
フォームが何らかの理由 (検証エラーなど) で失敗した場合、ユーザーが入力したデータを含むフォームを再度表示したいと考えています。成功したら、成功ページ (作成したばかりのアイテムなど)にリダイレクトしたいと考えています。
これまでに行ったことは次のとおりです。
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
前もって感謝します!