Форма Джанго, request.post и начальный - PullRequest
0 голосов
/ 25 января 2012

У меня есть форма django, в которой мне нужно установить значение для целей проверки, которое не передается как часть стандартного запроса Post.

В моем коде сейчас есть что-то вроде этого:

if request.method == 'POST':
        postform = CreatePostForm(request.POST, request.FILES, initial={'post_type':post.post_type})

        if postform.is_valid():
                .....

Значение post_type - это выборка со значением, похожим на 'QUE'

Проблема, с которой я сталкиваюсь, заключается в том, что это не является действительным. У кого-нибудь есть какие-либо предложения о том, как добавить значение post_type в класс CreatePostForm до того, как произойдет проверка.

Обратите внимание, что я не хочу указывать это значение в форме, поэтому его нельзя использовать в качестве части сообщения.

1 Ответ

7 голосов
/ 25 января 2012

Один из подходов состоит в том, чтобы сделать его свойством класса формы, который вы передаете в качестве аргумента при его создании:

class CreatePostForm(forms.Form/ModelForm):
    def __init__(self, post_type, *args, **kwargs):
        super(CreatePostForm, self).__init__(*args, **kwargs)
        self.post_type = post_type

postform = CreatePostForm(post_type=post.post_type, request.POST, request.FILES)

Надеюсь, что это поможет вам.

...