【发布时间】:2017-08-31 10:54:52
【问题描述】:
我有一个Form 和一个ModelChoiceField,它被用作FormView 中的form_class。
必须使用绑定到request 对象的信息填充选择字段。
让我们总结一下:
class MyFormView(FormView):
# I need to pass `request.user` and a value
# derived from `request.GET['pk']` to the form
form_class = MyForm
class MyForm(Form):
choices = ModelChoiceField(queryset=MyChoice.objects.none())
def __init__(self, user, number, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['choices'] = MyChoice.objects(number=number, owner=user)
创建实例时,我需要做什么才能将该数据传递给表单?
我尝试覆盖get_form,但我不确定这是不是正确的做法:
def get_form(self, form_class):
user = self.request.user
number = SomeModel.objects.get(self.GET['pk']).number
return form_class(user, number, **self.get_form_kwargs())
【问题讨论】:
标签: django