Django无法找到正确的道路

时间:2016-10-29 16:12:05

标签: python django

我在这里有这个观点:

from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse
from django.template import loader
from django.views.generic import ListView

class IndexView(ListView):
    def get(self, request):
        template_name = loader.get_template('home/blog.html')
        return render(request, template_name)
        return HttpResponse(template_name.render(request))  

因此,如果我删除返回渲染(request,template_name)一切都会正常工作但现在当我尝试使用返回渲染(request,template_name)时,我得到了这些错误:

<django.template.backends.django.Template object at 0x7f13916f46d8>

Django试图找到模板的地方:

django.template.loaders.app_directories.Loader: /home/marton/documents/github/fmi-fall-2016/django/click_bait/miranda/home/templates/<django.template.backends.django.Template object at 0x7f13916f46d8> (Source does not exist)
django.template.loaders.app_directories.Loader: /home/marton/documents/github/fmi-fall-2016/django/click_bait/env/lib/python3.4/site-packages/django/contrib/admin/templates/<django.template.backends.django.Template object at 0x7f13916f46d8> (Source does not exist)
django.template.loaders.app_directories.Loader: /home/marton/documents/github/fmi-fall-2016/django/click_bait/env/lib/python3.4/site-packages/django/contrib/auth/templates/<django.template.backends.django.Template object at 0x7f13916f46d8> (Source does not exist)

我该怎么办?现在是时候说我已经启动了这个项目我半小时前因路径有问题Django正在我的虚拟环境文件夹中搜索。

2 个答案:

答案 0 :(得分:0)

你在这里误解了一些事情。加载器返回模板对象,而不是模板名称。你根本不需要拨打loader.get_template的电话;您将模板路径直接传递给渲染:

 return render(request, 'home/blog.html')

答案 1 :(得分:0)

那是因为template_name应该是一个字符串。 它不是,它是模板加载器的返回。 你应该直接通过'home / blog.html&#39;作为render()调用的template_name。

但是使用ListView,我建议您直接使用template_name属性。

这样:

class IndexView(ListView):
    template_name = 'home/blog.html'

    #[...]