我想知道我应该如何在我的ModelForm中使用我的模型选择选项。
实施例(模型):
class NPCGuild(models.Model):
CATEGORIES=(
('COM', 'Combat'),
('CRA', 'Crafting'),
('WAR', 'Warfare'),
)
faction = models.ForeignKey(Faction)
category = models.CharField(max_length=3, choices=CATEGORIES)
name = models.CharField(max_length=63)
我的表格:
class NPCGuildForm(forms.ModelForm):
name = forms.CharField()
category = forms.CharField(
some widget?)
faction_set = Faction.objects.all()
faction = forms.ModelChoiceField(queryset=faction_set, empty_label="Faction", required=True)
class Meta:
model = NPCGuild
fields = ['name', 'category', 'faction']
正如你所看到的,我不知道我应该做些什么来从我的模型作为选择领域做出选择。也许它可以用ModelChoiceField完成,但是如何在其中获得选择?
有人可以帮助我吗
答案 0 :(得分:4)
您应该在Meta类中指定模型,并且将自动生成字段:
class NPCGuildForm(forms.ModelForm):
class Meta:
model = NPCGuild
如果您愿意,可以添加额外的表单字段。详细了解ModelFroms。
更新作为评论中提到的 karthikr 。如果要在表单字段中设置可用选项,则必须使用forms.ChoiceField
,如下所示:
category = forms.ChoiceField(choices=NPCGuild.CATEGORIES)