我在forms.py中創建下拉列表並篩選數據我收到一個名爲layer_id
的變量。並像這樣進入layer_id = kwargs['layer_id']
。所有的事情都很好,但是當我分配結束時提交這樣的self.fields['apn'].queryset= Field.objects.filter(layer=layer)
。調用去數據庫的fields
表,而不是分配我在forms.py中聲明的這些字段。那麼,誰我可以分配給字段forms.py如何從視圖導入數據後將下拉數據分配到字段
class labelModelForm(forms.ModelForm):
model = Labels_tool_
fields = ['apn', 'owner_name', 'situs_addr_One', 'situs_addr_Two', 'mailing_addr_One', 'mailing_addr_Two']
apn = forms.ModelChoiceField(queryset=Field.objects.values_list('name', flat=True), empty_label="(Choose field)")
def __init__(self, *args, **kwargs):
//getting layer_id from views
layer_id = kwargs['layer_id']
print layer_id
layer=Layer.objects.filter(id=layer_id).first()
x=Field.objects.filter(layer=layer)
//On this step when modify queryset I get error
self.fields['apn'].queryset= Field.objects.filter(layer=layer)
你改變了什麼? – Learner
使用它然後你會明白 – Exprator
給出錯誤「__init __()有一個意想不到的關鍵字參數'layer_id'」,仍然不能訪問表單中的字段 – Learner