首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尽管安装了admin,却在/admin/ TemplateDoesNotExist / message上安装了admin

尽管安装了admin,却在/admin/ TemplateDoesNotExist / message上安装了admin
EN

Stack Overflow用户
提问于 2018-10-12 21:28:36
回答 3查看 1.2K关注 0票数 0

似乎患上了脑冻,无法进行下一步的工作。我有一个Django Saleor应用程序,它试图让默认的Django管理界面在这里工作,但是在/ admin /TemplateDoesNotExist/错误处得到一个TemplateDoesNotExist。

调试部分说:

代码语言:javascript
复制
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中的模板:

代码语言:javascript
复制
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管理程序安装在“安装”应用程序中,url映射到/admin。

任何帮助都是非常感谢的。

EN

回答 3

Stack Overflow用户

发布于 2018-10-12 21:58:43

您缺少了APP_DIRS设置,它需要是True。

票数 0
EN

Stack Overflow用户

发布于 2018-10-12 22:00:36

中最有可能的问题之一是:或者您的loaders,因为您没有显示该变量包含什么,而模板中的loaders负责每次呈现它们时读取和编译它们。所以它们可能不会被加载,因为你可能犯了一个擦伤错误。您也没有APP_DIRS = True,而且admin是您安装的应用程序,所以如果您想使用它的模板,它是必需的。

它将有助于了解您正在使用的Django版本,以及为什么要使用loaders和其他OPTIONS。但是,由于我还没有这样做,下面的内容可能会帮助您调试它。

我不确定django的真正老版本,但我知道loaders在默认情况下不像Debug = False那样是必需的,而且它也没有在字典中指定。医生说这里是这样的,至少在2.1中是这样的。

这里有句话:

默认情况下(当调试为True时),模板系统每次呈现模板时都会读取和编译它们。虽然Django模板系统速度相当快,但读取和编译模板的开销可能会增加.如果选项‘’loaders‘未指定选项’DEBUG‘为False (后者默认为DEBUG的值),则自动启用此加载程序。

票数 0
EN

Stack Overflow用户

发布于 2022-06-24 07:46:02

在尝试向Saleor添加默认Django管理服务时,我也遇到了类似的问题。在我的例子中,在django.forms中添加‘INSTALLED_APPS’可以解决这个问题。

这就是我在saleor settings.py中添加的内容

代码语言:javascript
复制
AUTHENTICATION_BACKENDS = [
    "django.contrib.auth.backends.ModelBackend",
    ...
]
INSTALLED_APPS = [
    ...
    "django.contrib.auth",
    "django.contrib.messages",
    "django.contrib.admin",
    "django.contrib.sessions",
    "django.forms",
    ...
]
MIDDLEWARE = [
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52787226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档