Я пытаюсь использовать FormPreview от django и не могу заставить его работать должным образом. Вот мой код:
forms.py
class MyForm(forms.ModelForm):
status = forms.TypedChoiceField(
coerce=int, choices=LIST_STATUS, label="type",
widget=forms.RadioSelect
)
description = forms.CharField(widget = forms.Textarea)
stage = forms.CharField()
def __init__(self, useradd=None, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['firm'].label = "Firm"
class Meta:
model = MyModel
fields = ['status', 'description', 'stage']
class MyFormPreview(FormPreview):
form_template = 'templates/post.html'
preview_template = 'templates/review.html'
def process_preview(self, request, cleaned_data):
print "processed"
def done(self, request, cleaned_data):
print "done"
# Do something with the cleaned_data, then redirect
# to a "success" page.
return HttpResponseRedirect('/')
urls.py
(r'^post/$', MyFormPreview(MyForm)),
post.html
<form id = "post_ad" action = "" method = "POST" enctype="multipart/form-data">
<table>
{{form.as_table}}
</table>
<input type="submit" name="save" value="Post" />
</form>
Когда я захожу в / post /, я получаю правильную форму и заполняю ее. Когда я отправляю форму, она возвращается обратно в / post /, но ошибок нет (я пытался отобразить {{errors}}), и форма пуста. Ни один из моих операторов печати не выполняется. Я не уверен, что мне не хватает. Может кто-нибудь мне помочь? Я не могу найти никакой документации, кроме того, что на сайте Django.
Кроме того, как называется переменная предварительного просмотра, которую я должен использовать в своем шаблоне preview.html? {{preview}} или я просто делаю {{form}} снова? - ответил ниже.
Я попытался добавить 'django.contrib.formtools' в мои установленные_apps в настройках и попытался использовать код из шаблонов форм по умолчанию из django.contrib, как предложено ниже. Тем не менее, когда я отправляю форму, я сразу возвращаюсь к шаблону публикации, ни одно из моих операторов печати не выполняется: (