Python Django基于数据库查询创建选项
我正在编写一个Django 1.7应用程序,它需要根据数据库中存储的合作企业查询为表单创建一个选项列表。此业务列表可以动态更改,表单选择需要在需要时动态自动重新填充。我创建了一个名为PartneredBusiness的模型,它存储了所有需要的业务信息。我还创建了一个表单:Python Django基于数据库查询创建选项,python,django,django-forms,Python,Django,Django Forms,我正在编写一个Django 1.7应用程序,它需要根据数据库中存储的合作企业查询为表单创建一个选项列表。此业务列表可以动态更改,表单选择需要在需要时动态自动重新填充。我创建了一个名为PartneredBusiness的模型,它存储了所有需要的业务信息。我还创建了一个表单: class StartPartneredDeliveryForm(Form): def __init__(self, *args, **kwargs): super(StartPartneredDeliveryFor
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,我没有看到提供的代码中使用了
表单
。你确定你的密码和答案中的一样吗?是的。让它正常工作。我把代码抄错了。谢谢