我在forms.py中有一个类,用于为该表单设置ui,其中一些是由(外部)数据库填充的下拉菜单
class myForm(forms.Form):
barcodes_list = getBarcodes(server_database)
barcodes= forms.TypedChoiceField(label='Barcodes',
choices=barcodes_list,
widget=forms.Select(attrs={'style':'width:164px'}),
initial = '' )
barcodes_list仅在重新启动Django服务器时运行。如果刷新页面,即使数据库发生更改,条形码列表也会保持不变。我想在刷新时再次运行barcodes_list。
我已经尝试在myForm类中按照SO
上的类似问题添加它def __init__(self, *args, **kwargs):
super(myForm, self).__init__(*args, **kwargs)
barcodes_list = ...
答案 0 :(得分:1)
试试这个:
class myForm(forms.Form):
def __init__(self, *args, **kwargs):
super(myForm, self).__init__(*args, **kwargs)
self.fields['barcodes'].choices = getBarcodes(server_database)
barcodes = forms.TypedChoiceField(label='Barcodes',
widget=forms.Select(attrs={'style':'width:164px'}), initial='')