我有一个FormView视图,使用get_context_data()提供了一些额外的GET上下文:
class SignUpView(FormView):
template_name = 'pages_fixed/accounts/signup.html'
form_class = SignUpForm
def get_context_data(self, **kwargs):
context = super(SignUpView, self).get_context_data(**kwargs)
context = {
'plans': common.plans,
'pricing': common.pricing,
}
return context
这很好用。但是,我在会话中也有一些值(不是来自任何绑定模型),我想预先填充到表单中。这些因用户在上一页上的操作而异。我知道(从我的其他post)我可以将表单传递给上下文(使用initial=
),但是在上面的FormView情况下是否可能?
答案 0 :(得分:57)
您可以覆盖FormView类的'get_initial'方法。有关详细信息,请参阅here
e.g。
def get_initial(self):
"""
Returns the initial data to use for forms on this view.
"""
initial = super(SignUpView, self).get_initial()
initial['my_form_field1'] = self.request.something
return initial
'get_initial'应该返回一个字典,其中键是表单上字段的名称,值是在向用户显示表单时使用的初始值。