2011-08-22 4 views

답변

0

로 설정 기본적으로해야합니다 그래서 첫 번째 양식을 수정하고 필요합니다 :

from django.forms.models import BaseModelFormSet 

class OneRequiredFormSet(BaseModelFormSet): 
    def _construct_form(self, i, **kwargs): 
     f = super(OneRequiredFormSet, self)._construct_form(i, **kwargs) 
     if i == 0: 
      f.empty_permitted = False 
      f.required = True 
     return f 

그런 다음 당신은 당신의 새를 사용하는 modelformset_factory에게하는 formset 키워드 인수를 사용할 수 있습니다 수업 :

from django.forms.models import modelformset_factory 

ParticipantFormSet = modelformset_factory(Participant, extra=1, 
              form=ParticipantForm, 
              formset=OneRequiredFormSet) 
1

Matthew Flanagan은 package of things for Django이며 그 패키지에는 RequireOneFormset 클래스가 있습니다. 이 클래스를 쉽게 확장하여 하나 대신 3 개의 폼을 요구할 수 있습니다.

희망은 당신을 도와줍니다.

2

것은 내가 인라인 formsets이 같은 것을 사용했습니다 :

class BaseSomethingFormset(BaseInlineFormSet): 
    def __init__(self, *args, **kwargs): 
     super(BaseSomethingFormset, self).__init__(*args, **kwargs) 
     self.forms[0].empty_permitted = False 
     self.forms[0].required = True 

양식 필드 당신은 BaseModelFormSet을 하위 클래스 required=False

관련 문제