我有一個這樣的形式:用戶在表單級
class MyForm(forms.Form):
[...]
這在我看來是呈現:
if request.method == 'GET':
form = MyForm(request.GET)
現在,我想添加其中包含了一組表單域值在選擇字段中,並且查詢集必須由當前登錄的用戶過濾。所以我改變了方法簽名,以便它包含請求對象:
class MyForm(forms.Form):
def __init__(self, user, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.myfield = forms.ChoiceField([('%s' % d.id, '%s' % d.name) for d in MyModel.objects.filter(owners = user)])
但所有呈現形式後我得到的是一個對象的引用作爲字符串而不是選擇窗口小部件。我似乎已經聲明一個表單字段不能被修改。
任何想法?