Предварительный просмотр формы Django - PullRequest
0 голосов
/ 10 июня 2010

Я пытаюсь использовать 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, как предложено ниже. Тем не менее, когда я отправляю форму, я сразу возвращаюсь к шаблону публикации, ни одно из моих операторов печати не выполняется: (

Ответы [ 2 ]

3 голосов
/ 11 июня 2010

См. Django / contrib / formtools / templates для шаблонов по умолчанию.

2 голосов
/ 06 июля 2015

Formtools был удален из 1.8+ Django.

Теперь доступно на странице Github: Django-Formtools и соответствующую документацию можно найти по адресу . Прочитайте документы .

sudo pip install django-formtools должен помочь вам установить его.

Удаление было объявлено в 1.8 основных моментах выпуска

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