我有一个包含带有选择列表的字段的类:
class Game(models.Model):
track = models.CharField(max_length=5,
choices=AllTracks.TRACK_CHOICES)
我想使用基于此模型的表单,但我想将其传递给选择列表的一个子集PublicTracks.TRACK_CHOICES
。
我看过表格的结构。在base_fields
字典中,track
是TypedChoiceField
对象。该对象具有属性choices
,即list(AllTracks.TRACK_CHOICES)
。我尝试用list(AllTracks.TRACK_CHOICES)
替换它,但似乎没有。
有关如何从模型定义覆盖列表的任何建议将不胜感激。
答案 0 :(得分:0)
您可以在表单类上定义完全自定义字段,覆盖从模型自动生成的字段,如Overriding the default fields中所述:
class GameForm(forms.ModelForm):
track = forms.ChoiceField(choices=WHATEVER, ...)
class Meta(object):
model = Game