2011-10-02 45 views
0

我有以下型號:的Django的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一個子類。我在寫的形式,因爲yes_no_required爲nullbooleanfield的formfield空值將返回一個None,我不想要的。

現在,當我想要我的實例化形式展現現有的記錄,LiveConsentForm(instance=templateInstance),我遇到一個問題。

templateInstance.yes_no_required的值是無,但是當HTML渲染,選擇------。 (當yes_no_requiredTrueFalse時,我沒有這種麻煩)

在這裏需要一些幫助。

回答

0

好,我看了看forms.fields和

原來,渲染HTML時,結果是毫無只是當作',而empty_value不考慮這裏。我不知道爲什麼@Ignacio巴斯克斯 - 艾布拉姆斯的傢伙拿走了他的答案,所以如果可以請你把它放回去再升,我會接受它。

相關問題