如何基于django表单中的模型制作动态选择字段?

问题描述 投票:0回答:1

我有一个组模型,我想在我的表单中使用它的对象。我想要一个基于组模型对象的动态选择元组!我该怎么做? 我使用了下面的代码:

class Employee_Form(forms.Form):
GROUPS = ()
try:
    GROUPS = (
    )
    for i in Group.objects.all():
        GROUPS += ((i.name , i.name),)
except:
    pass
phone = forms.CharField(max_length=12)
name = forms.CharField(max_length=50)
position = forms.CharField(max_length=30)
group = forms.ChoiceField(choices=GROUPS)

这段代码有问题。每次向模型添加新对象时,都必须重新启动服务器,但不建议这样做! 一件重要的事情是我想使用 forms.Form 而不是 modelForm。

python django
1个回答
0
投票

您想要做的事情已经存在:一个

ModelChoiceField
form 字段 [Django-doc],这需要一个
QuerySet
,并使用主键作为标识符来确定所选择的项目:

class Employee_Form(forms.Form):
    phone = forms.CharField(max_length=12)
    name = forms.CharField(max_length=50)
    position = forms.CharField(max_length=30)
    group = forms.ModelChoiceField(queryset=Group.objects.all())
© www.soinside.com 2019 - 2024. All rights reserved.