2017-09-14 18 views
2

、私は次のエラーを取得しています:Djangoテンプレートモジュールのインポートエラー

ImportError at /music/ 
No module named 'django.templates' 
Request Method: GET 
Request URL: http://localhost:8000/music/ 
Django Version: 1.9.5 
Exception Type: ImportError 
Exception Value:  
No module named 'django.templates' 
Exception Location: D:\Program Files (x86)\Python\lib\importlib\__init__.py in import_module, line 126 
Python Executable: D:\Program Files (x86)\Python\python.exe 
Python Version: 3.5.0 
Python Path:  
['C:\\Users\\ang\\Desktop\\website', 
'D:\\Program Files (x86)\\Python\\lib\\site-packages\\django-1.9.5-py3.5.egg', 
'D:\\Program Files (x86)\\Python\\python35.zip', 
'D:\\Program Files (x86)\\Python\\DLLs', 
'D:\\Program Files (x86)\\Python\\lib', 
'D:\\Program Files (x86)\\Python', 
'D:\\Program Files (x86)\\Python\\lib\\site-packages'] 

エラーがから来ているようです輸入ライン。構文をチェックし、TEMPLATESのパスをDIRSで明示的に指定しようとしましたが、同じ結果になりました。誰もが同様の問題に遭遇しましたか?提起された同様の問題が、異なる言語で見つかりました。テンプレートの

フォルダ構造:name_of_app /テンプレート/ inner_folder/html_file

music/templates/music/index.html

views.py

from django.http import HttpResponse 
from django.template import loader # error gone if i remove this line 
from .models import Album 


def index(request): 
    all_albums = Album.objects.all() 
    template = loader.get_template('music/index.html') 
    context = { 
     'all_albums': all_albums 
    } 
    return HttpResponse('test test') 

settings.py

TEMPLATES = [ 
    { 
     'BACKEND': 'django.templates.backends.django.DjangoTemplates', 
     'DIRS': [], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.templates.context_processors.debug', 
       'django.templates.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

答えて

3

これは、プログラマの最大の宿敵のように見えます:タイプミス。 2番目のコードスニペットの途中にdjango.templates...の参照がありますが、2行目はdjango.templateからインポートされています。

編集:私のテストでは、誤ったインポートがシェルで失敗し、context_processorsの誤った参照がブラウザで失敗します。

+0

はそれをしようとしました。サーバはフォローエラーで起動しません。かなり簡単に私の現在のインポートステートメントは、IDE構文の強調表示に基づいて正しいです。なぜなら、sを追加するとローダーが認識されないからです。 - ImportError: 'django.templates'という名前のモジュールがありません – user3050832

+0

私の答えが更新されました。入力ミスは、あなたの 'context_processors'にありました。 – Franey

+0

settings.pyファイルで、django.template.context_processors.requestに変更しますか? (sを取り除く)。はいの場合、同じエラーが発生します。 – user3050832

0

モジュールdjango.shortcurt.render()を使用して、テンプレートをレンダリングするために、このメソッドを使用してみてください:

from django.shortcuts import render 
from .models import Album 


def index(request): 
    all_albums = Album.objects.all() 
    context = { 
     'all_albums': all_albums 
    } 
    return render(request, 'music/index.html',context=context) 
1
TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.contrib.auth.context_processors.auth', 
       'django.template.context_processors.debug', 
       'django.template.context_processors.i18n', 
       'django.template.context_processors.media', 
       'django.template.context_processors.static', 
       'django.template.context_processors.tz', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 
+0

settings.pyの既存のTEMPLATES構造体を上記のコードに置き換えてください。 –

+0

あなたの回答の仕組みについての簡単な説明を追加することを検討してください。また、回答を編集してより価値のある情報を追加することもできます – crgarridos

関連する問題