2012-09-19 1 views
1

게시 된 생각 . 무엇을 /이 그 옆에하지 왜 여기 정말 중요하지 않습니다 여전히 같은 문제 나타내는 대폭 단순화 예제 :장고 동적 형태는 나는 내가 <code>__init__</code>에 자신의 필드를 작성하는 양식을했습니다 자신의 차례 :</p> <p>이다 이제 몇 시간 동안이 일을 통해 내 머리를 긁적 봤는데

class TestForm(forms.Form): 
    def __init__(self, variable, *args, **kwargs): 
     super(TestForm, self).__init__(args, kwargs) 
     for i in range(0, variable): 
      self.fields['f_%d' % i] = forms.BooleanField(label="Field %d" % i) 

# and in the view: 
return render(request, 'survey/form.html', {'f': TestForm(variable=10)}) 

을 그리고 템플릿은 {{f.as_p}}입니다. 코드는 이지만으로 작동하며 오류 메시지가 포함되어 있습니다. 각각의 BooleanField에서 필요한 오류가 10 개 있습니다. 하지만 아무 것도 게시하지 않고 있으며 어떤 포스트 데이터도 TestForm으로 전달하지 않을 것입니다. 위에 보이는 것은 내가 실행하고있는 것입니다 (직접 시도하십시오).

그래서 내가 뭘 잘못하고 있니? 양식이 is_valid()이고 그 이유는 무엇입니까?

답변

2

귀하의 __init__ 방법이 있어야한다 : 그 문제 또는 문제의 오타 인 경우

def __init__(self, variable, *args, **kwargs): 
    super(TestForm, self).__init__(*args, **kwargs) 

잘 모르겠어요. 예제 코드는 양식이 data=args으로 초기화됨을 의미합니다.

+0

나는 *이 * 스스로 발견했습니다. 그래, 이건 오타가 아니야, 난 그냥 바보 야. 누락 된 확장 별표가 문제였습니다. – Oli

관련 문제