2011-10-02 4 views
0

나는 다음과 같은 모델이 있습니다장고 modelform

ynChoice = ((None, 'Acknowledgement not required'), 
      (True, 'Acknowledgement and consent required'), 
      (False, 'Acknowledgement required but consent not required')) 

class AbstractForm(models.Model): 
    """base class for the below 2 classes""" 
    #require users to say yes and no other than acknowledging #null = not required 
    yes_no_required = models.NullBooleanField(choices=ynChoice, blank=False) 

을하고 내 modelform에 매핑 : 여기

class LiveConsentForm(forms.ModelForm): 
    ynChoice = (
       ('', '---------------'), 
       (None, 'Acknowledgement not required'), 
       (True, 'Acknowledgement and consent required'), 
       (False, 'Acknowledgement required but consent not required'), 
       ) 
    yes_no_required = forms.TypedChoiceField(choices=ynChoice,empty_value='') 
    class Meta: 
     model = ConsentFormTemplate 

, ConsentFormTemplateAbstractForm의 서브 클래스입니다. nullbooleanfield의 formfield에 대한 빈 값이 None을 반환하기 때문에 양식에 yes_no_required을 썼습니다. 원하지 않습니다.

지금, 기존의 레코드 인 LiveConsentForm(instance=templateInstance)을 표시하기 위해 양식을 인스턴스화하려면 문제가 발생합니다.

templateInstance.yes_no_required의 값은 없음이지만 html이 렌더링되면 ------이 선택됩니다. (yes_no_requiredTrue 또는 False 일 때 이러한 문제가 발생하지 않습니다.

여기에서 도움이 필요합니다.

답변

0

확인 나는 forms.fields에서 검토 한

는 HTML로 렌더링 할 때, 아무도 단지 '로 취급되지 않는 것으로 나타났다 및 empty_value 여기에 고려되지 않은 것으로 나타났다. @ 이그나시오 바스케스 - 아브람스의 친구가 왜 대답을하지 않았는지 모르겠다. 다시 되돌려주세요. 받아 들일 것입니다.