Django TemplateDoesNotExist位于/​​ admin / login /消息,尽管已安装admin

时间:2018-10-12 21:28:36

标签: python django django-templates

似乎正遭受大脑冻结,无法进行以下工作。我有一个Django Saleor应用程序,试图在此处使用默认的Django管理界面,但在/ admin / login / 处出现 TemplateDoesNotExist错误。

调试部分说:

Template-loader postmortem
Django tried loading these templates, in this order:

Using engine django:

    django.template.loaders.filesystem.Loader: /var/www/html/applications/py-saleortakeaway/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/django/contrib/sitemaps/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/django/contrib/auth/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/django/contrib/postgres/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/django/forms/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/versatileimagefield/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/bootstrap4/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/django_prices/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/graphene_django/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/mptt/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/payments/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/django_filters/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/impersonate/templates/admin/login.html (Source does not exist)
    django.template.loaders.app_directories.Loader: /usr/local/lib/python3.5/dist-packages/debug_toolbar/templates/admin/login.html (Source does not exist)

这是我在settings.py中的模板下的内容:

TEMPLATES = [{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(PROJECT_ROOT, 'templates')],
    'OPTIONS': {
        'debug': DEBUG,
        'context_processors': context_processors,
        'loaders': loaders,
        'string_if_invalid': '<< MISSING VARIABLE "%s" >>' if DEBUG else ''}}]

Django admin已安装在“已安装”的应用程序中,并且网址已映射到/ admin。

我们非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您缺少APP_DIRS设置,该设置必须为True。

答案 1 :(得分:0)

其中一个很可能是问题所在:要么是loaders,因为您没有显示该变量包含的内容,而您的模板中是loaders 负责在每次渲染它们时进行阅读和编译。因此,由于您可能发生的路径错误,可能未加载它们。您也没有APP_DIRS = True,并且admin是您安装的应用程序,因此如果要使用它的模板,则需要它。

知道您使用的是哪个版本的Django,以及为什么还要使用loaders和另一个OPTIONS,这会有所帮助。但是由于我还没有,下面的内容可能会帮助您调试它。

我不确定django的真正旧版本,但是我知道默认情况下只要loaders都不需要Debug = False,并且字典中也没有指定它。文档至少在2.1中这样说here

这里是一个报价:

  

默认为(当DEBUG为True时),模板系统读取并   每次渲染模板时都会对其进行编译。而Django   模板系统相当快,读取和编译的开销   模板可以加起来..............   如果没有OPTIONS ['loaders'] ,则自动启用此加载程序   指定 OPTIONS ['debug']为假 (后一个选项默认为   DEBUG的值)。