如何在Django表单中替换TypedChoiceField的选择列表?

时间:2014-02-21 09:32:46

标签: python django django-forms

我有一个包含带有选择列表的字段的类:

class Game(models.Model):
    track = models.CharField(max_length=5,
                             choices=AllTracks.TRACK_CHOICES)

我想使用基于此模型的表单,但我想将其传递给选择列表的一个子集PublicTracks.TRACK_CHOICES

我看过表格的结构。在base_fields字典中,trackTypedChoiceField对象。该对象具有属性choices,即list(AllTracks.TRACK_CHOICES)。我尝试用list(AllTracks.TRACK_CHOICES)替换它,但似乎没有。

有关如何从模型定义覆盖列表的任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以在表单类上定义完全自定义字段,覆盖从模型自动生成的字段,如Overriding the default fields中所述:

class GameForm(forms.ModelForm):

    track = forms.ChoiceField(choices=WHATEVER, ...)

    class Meta(object):
        model = Game