我有一个这样的形式:用户在表单级
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)])
但所有呈现形式后我得到的是一个对象的引用作为字符串而不是选择窗口小部件。我似乎已经声明一个表单字段不能被修改。
任何想法?