0

data_type親フォームで定義されているサブクラスの特定のフィールド (Select ウィジェットを使用する) を除外したいと考えています。私は次のようにクラスを定義しました:

class ParentForm(forms.ModelForm):
    data_type = forms.CharField(widget=forms.Select(choices=ANNOTATION_TYPES))

    class Meta:
        model = Annotation
        fields = ('data_value','data_type','active','primary_source')                 
        exclude = ()


class DetailForm(ParentForm):

    class Meta(ParentForm.Meta):        
        exclude = ('data_type','primary_source')

これは問題ないようです:

print DetailForm.Meta.exclude
('data_type', 'primary_source')

ただし、HTML を印刷すると、まだフィールドが表示さdata_typeDetailFormます (他の除外フィールドは表示されませんprimary_source)。

print DetailForm(None)

HTML:

<tr><th><label for="id_data_value">Data value:</label></th>..
<tr><th><label for="id_active">Active:</label></th>....
<tr><th><label for="id_data_type">Data type:</label></th><td>
<select name="data_type" id="id_data_type">
<option value="Comment1">Subcellular location</option>
<option value="Comment2">Function</option>
<option value="Comment3">Sequence caution</option>
</select></td></tr>

data_typeの定義方法に問題があるようです。何か案は?

4

1 に答える 1