Han*_*ong 1 forms django model choice
我想知道如何在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)
Run Code Online (Sandbox Code Playgroud)
我的表格:
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']
Run Code Online (Sandbox Code Playgroud)
如您所见,我不确定我应该怎么做才能从模型中将我的选择作为选择字段。也许也可以使用ModelChoiceField来完成,但是接下来如何选择呢?
有人可以帮我吗
您应该在Meta类中指定模型,字段将自动生成:
class NPCGuildForm(forms.ModelForm):
class Meta:
model = NPCGuild
Run Code Online (Sandbox Code Playgroud)
您可以根据需要添加其他表单字段。阅读有关ModelFroms的更多信息。
更新正如karthikr在评论中提到的。如果要在表单字段中设置可用选项,则必须使用forms.ChoiceField,如下所示:
category = forms.ChoiceField(choices=NPCGuild.CATEGORIES)
Run Code Online (Sandbox Code Playgroud)