Python Django基于数据库查询创建选项

Python Django基于数据库查询创建选项,python,django,django-forms,Python,Django,Django Forms,我正在编写一个Django 1.7应用程序,它需要根据数据库中存储的合作企业查询为表单创建一个选项列表。此业务列表可以动态更改,表单选择需要在需要时动态自动重新填充。我创建了一个名为PartneredBusiness的模型,它存储了所有需要的业务信息。我还创建了一个表单: class StartPartneredDeliveryForm(Form): def __init__(self, *args, **kwargs): super(StartPartneredDeliveryFor

我正在编写一个Django 1.7应用程序,它需要根据数据库中存储的合作企业查询为表单创建一个选项列表。此业务列表可以动态更改,表单选择需要在需要时动态自动重新填充。我创建了一个名为PartneredBusiness的模型,它存储了所有需要的业务信息。我还创建了一个表单:

class StartPartneredDeliveryForm(Form):

def __init__(self, *args, **kwargs):
    super(StartPartneredDeliveryForm, self).__init__(*args, **kwargs)
    self.fields['partnered_business'].choices = \
        [(business.id, business.contact.organization_name) \
        for business in PartneredBusiness.objects.all()]

destination_address = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Destination'}))
partnered_business = forms.ChoiceField(widget=forms.RadioSelect(), choices=())
一开始这似乎很好,但如果我将新业务添加到数据库中,表单显示的PartneredBusiness列表似乎不会更新选择列表,直到我通过停止并重新运行
python3 manage.py runserver
重新启动服务器


有人能给你一点提示吗?

你需要在构造函数中实例化你的字段(不是它的选项):

class StartPartneredDeliveryForm(Form):
    def __init__(self, *args, **kwargs):
        super(StartPartneredDeliveryForm, self).__init__(*args, **kwargs)

        choices = [(business.id, business.contact.organization_name) 
                   for business in PartneredBusiness.objects.all()]

        self.fields['partnered_business'] = forms.ChoiceField(widget=forms.RadioSelect(),
                                                              choices=choices)

@exquest hm,我没有看到提供的代码中使用了
表单
。你确定你的密码和答案中的一样吗?是的。让它正常工作。我把代码抄错了。谢谢