Django contect_object_name在视图中不生成上下文字典

时间:2018-09-17 01:03:50

标签: python django

我回来了关于CBV的更多django问题。这大约是context_object_name。我有以下内容:

@method_decorator(verified_email_required, name='dispatch')
class Create(CreateView):
    model = Profile
    context_object_name = 'profileForm'
    template_name = 'Members/template_includes/profile/form.html'
    form_class = ProfileForm
    success_url = '/Members'
    form_title = "New Login Profile Information"

    def get(self, request, *args, **kwargs):
            return render(request, self.template_name, {
                'profileTitle': self.form_title,
            })

我正在使用PyCharm,可以在template_name表单中放置一个断点,并查看环境知道什么。我希望看到一个名为profileForm的字典,其中包含所有表单成员以及profileTitle。相反,我将profileTitle视为独立成员。我看不到任何名为profileFormobject_list的东西,并且期望的表单成员没有在模板中绘制。

我想我了解return render中的多余内容将传递“裸露的” profileTitle,但是我确实希望默认的get行为会获取表单信息。

我错过了重点吗?

1 个答案:

答案 0 :(得分:1)

您已经覆盖了get子类中的CreateView方法,并且这样做已经绕过了CreateView用来填充上下文的功能。如果看一下here,您会发现CreateView会调用return self.render_to_response(self.get_context_data())(因为它是从ProcessFormView继承的),并且位于get_context_data()ref)之内设置那些包含的上下文变量。