2012-01-24 8 views
-2

표준 게시물 요청의 일부로 전달되지 않은 유효성 검사 목적으로 값을 설정해야하는 장고 양식이 있습니다. 내 코드에서Django 양식, request.post 및 초기

나는 현재 같은 것을 가지고는 :

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

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

값 post_type는 같은 값으로 선택이다 'QUE'

오전 데 문제는이하지 않는 것입니다 유효한 것으로 보입니다. 유효성 검사가 수행되기 전에 누구나 CreatePostForm 클래스에 post_type 값을 추가하는 방법에 대한 제안이 있습니다.

게시물에이 값을 포함시키지 않으려면 양식에이 값을 표시하고 싶지 않습니다. 옵션이 아니므로 유의하십시오.

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) 

희망 당신을하는 데 도움이 :

+1

'post_type'은 양식의 필드입니까? 최소한 CreatePostForm의 필드를 게시 할 수 있다면 도움이 될 것이므로 어떤 유형의 유효성 검사가 실행되고 있는지 알 수 있습니다. – mklauber

답변

7

한 가지 방법은 그것에게 당신이 그것을 인스턴스화 할 때 인수로 손 폼 클래스의 속성을 확인하는 것입니다.

+0

나를 위해 작동하지 않습니다 ... ** init __() **에서 자체 매개 변수를 놓쳤습니까? – MrROY

+0

가, 네 말이 맞아. __init__의 첫 번째 매개 변수는 self 여야합니다. – Brandon

+0

관심이 없으면 왜 이것을 kwargs에서 꺼내지 않을까요? 그것은 보이지 않지만, 나는 왜 궁금하니 :) –