我有一个FormView View ,并使用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

这很好。但是,我在 session 中也有一些值(不是来自任何绑定(bind)模型),我希望将这些值预先填充到表单中。这些取决于用户在前一页上的操作而有所不同。我(从我的另一个post)知道我可以将表单传递到上下文中(使用initial=),但是在上面的FormView情况下可以吗?

最佳答案

您可以重写FormView类的'get_initial'方法。有关更多信息,请参见here

例如

def get_initial(self):
    """
    Returns the initial data to use for forms on this view.
    """
    initial = super().get_initial()

    initial['my_form_field1'] = self.request.something

    return initial

“get_initial”应返回一个字典,其中的键是表单上字段的名称,而值是向用户显示表单时要使用的初始值。

关于python - Django:如何使用动态(非模型)数据预填充FormView?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22083218/

10-10 19:17