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()})
答案 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
的调用中