PostList()收到了无效的关键字'template_name'

时间:2016-06-30 07:08:33

标签: django

  

as_view只接受已经是类

属性的参数

这对我来说没有意义,因为template_name是一个属性。我检查了类似的问题,但无法找到我的代码出错的迹象。这是我的代码。

urls.py:

from django.conf.urls import url
from .views import PostList

urlpatterns = [
    url(r'^$',
        PostList.as_view(
            template_name='blog/post_list.html'),
        name='blog_post_list'),
]

views.py

from django.views.generic import View
from .models import Post


class PostList(View):
    def get(self, request):
        return render(
            request,
            'blog/post_list.html',
            {'post_list': Post.objects.all()})

1 个答案:

答案 0 :(得分:3)

View类,没有template_name属性,您要么使用TemplateView,要么使用ListView更有意义

class PostList(ListView):
    context_object_name = 'post_list'
    template_name = 'blog/post_list.html'
    def get_queryset(self):
        return Post.objects.all()

注意:无论哪种方式,由于您已经在视图中设置了模板名称,因此您实际上并不需要将其包含在as_view的调用中