覆盖get_context_data阻止了一些去往模板的上下文数据

时间:2018-10-13 19:40:02

标签: django django-templates django-views

我将从CreateView继承来为模型创建表单。

class NewBlogView(CreateView):
    form_class = BlogForm
    template_name = 'blog_settings.html'
    def form_valid(self, form):
        blog_obj = form.save(commit=False)
        blog_obj.owner = self.request.user
        blog_obj.slug = slugify(blog_obj.title)
        blog_obj.save()
        return HttpResponseRedirect(reverse('home'))

这是我的模板代码:

{% extends 'base.html' %}

{% block content %}

<h1>Create New User</h1>
<form action='' method='post'>{% csrf_token %}
    {{ form.as_p }}
    <input type='submit' value='Create Account' />
</form>
{% endblock %}

目前,一切正常,但是当我覆盖get_context_data()时,我的title字段消失了。

class NewBlogView(CreateView):
    form_class = BlogForm
    template_name = 'blog_settings.html'
    def form_valid(self, form):
        blog_obj = form.save(commit=False)
        blog_obj.owner = self.request.user
        blog_obj.slug = slugify(blog_obj.title)
        blog_obj.save()
        return HttpResponseRedirect(reverse('home'))

    def get_context_data(self, **kwargs):
       ctx = super(NewBlogView, self).get_context_data(**kwargs)
       print(ctx)
       return ctx

我正在考虑,尽管我正在运行我继承的函数中的原始get_context_data(),但是从form_class中获取字段名称时出现了一些问题。有人可以帮我解决我的困惑吗?

0 个答案:

没有答案