2017-06-19 290 views
0

嗨我想让我的工作登录在Django,但是当我从django登录视图urls.py并通过我的模板我有这个错误: TemplateDoesNotExist at/login/ 使用发动机的Django: django.template.loaders.filesystem.Loader:错误:模板不存在

C:\Users\sdand\Documents\envganagro\templates\login.html (Source does not exist) 
django.template.loaders.app_directories.Loader: C:\Users\sdand\Documents\envganagro\lib\site-packages\django\contrib\admin\templates\login.html (Source does not exist) 
django.template.loaders.app_directories.Loader: C:\Users\sdand\Documents\envganagro\lib\site-packages\django\contrib\auth\templates\login.html (Source does not exist) 
django.template.loaders.app_directories.Loader: C:\Users\sdand\Documents\envganagro\ganagroapp\templates\login.html (Source does not exist) 

而是你如何能在此图像中看到: this is my directory

的模板ganagroapp /模板/ ganagroapp存在

我ganagro/urls.py是这样的:

from django.conf.urls import include,url 
from django.contrib import admin 

    urlpatterns = [ 
     url(r'^admin/', admin.site.urls), 
     url(r'',include('ganagroapp.urls')), 

    ] 

我ganagroapp/urls.py是这样的:

from django.conf.urls import include, url 
from . import views 
from django.contrib.auth.views import login 

app_name = 'ganagroapp' 
urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^product/(?P<pk>[0-9]+)/$', views.product_detail, name='product_detail'), 
    url(r'^category/(?P<pk>[0-9]+)/$', views.product_category, name='product_category'), 
    url(r'^product/new/$', views.new_product, name='new_product'), 
    url(r'^login/$',login,{'template_name':'login.html'}, name='login'), 
] 

回答

3

请务必包括Django中可以找到您的模板,像这样的目录:

# your_template_dir_string will depend on where your settings file is in 
# relation to this template directory, you'll have to figure that out 
# as I can't tell from your linked info 
your_template_dir_string = 'ganagroapp/templates/ganagroapp' 
TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [ 
       # . . . 
       os.path.join(BASE_DIR, your_template_dir_string), 
       # . . . 
     ], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'social_django.context_processors.backends', # 
       'social_django.context_processors.login_redirect', # 
      ], 
      'libraries': { 
       'content_extras': 'content.templatetags.content_extras', 
      } 
     }, 
    }, 
] 

您还可以使用模板加载器,因此您不必显式指定新的模板目录; app_directories加载程序将在安装的应用程序中查找名为“模板”的目录。

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'OPTIONS': { 
      'loaders': [ 
       ('django.template.loaders.app_directories.Loader',), 
       # you can only specify filesystem loaders like below 
       # for template directories NOT contained in an installed 
       # app in django 1.11. For example, a template directory 
       # contained in your project directory 
       (
        'django.template.loaders.filesystem.Loader', 
        [os.path.join(BASE_DIR, 'templates')], 
       ), 
      ], 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'social_django.context_processors.backends', # 
       'social_django.context_processors.login_redirect', # 
      ], 
      'libraries': { 
       'content_extras': 'content.templatetags.content_extras', 
      } 
     }, 
    }, 
] 
0

另一种方法是在模板内创建一个名为'Registration'的目录 - > ganagroapp。复制该文件夹内的所有模板。它应该工作。