2016-10-29 8 views
0

正しい道を取得することはできません。だから私は削除する場合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)) 

をレンダリングリターン(要求、テンプレート名)私が使用しようとするとすべてが正常に動作しますが、今されますDjangoはテンプレートを見つけることを試みた

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

場所:

リターン(要求、テンプレート名)が、私はこれらのエラーを取得するレンダリング
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が私の仮想環境のフォルダで検索していた30分前に、私はパスに問題がありました。このプロジェクトを開始したことを否定する時が来ました。

+0

このテンプレートはありますか?テンプレートがあなたのINSTALLED_APPSに追加されていますか? – vmonteco

+0

INSTALLED_APPS = [ 'ホーム'、 'django.contrib.admin'、 'django.contrib.auth'、 'django.contrib.contenttypes'、 'django.contrib.sessions'、 「django.contrib .messages '、 ' django.contrib.staticfiles '、 ] – Harton

+0

ターゲットとするパス/home/marton/documents/github/fmi-fall-2016/django/click_bait/miranda/home/templates/home/blog.html – Harton

答えて

0

あなたはここでいくつかのことを誤解しています。ローダは、テンプレート名ではなくテンプレートオブジェクトを返します。 loader.get_templateへの呼び出しはまったく必要ありません。レンダリングするためにテンプレートパスを直接渡します。

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

作品、ありがとう、私はあなたに秒単位でクレジットを与えます – Harton

0

template_nameは文字列である必要があります。 これは、テンプレートローダーが戻ったことではありません。 render()呼び出しにtemplate_nameとして直接 'home/blog.html'を渡す必要があります。

しかし、ListViewでは、template_name属性を直接使用することをお勧めします。

この方法:

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

    #[...] 
関連する問題