无法访问端口上的 django-admin 面板

问题描述 投票:0回答:1

希望能够访问django管理面板并添加社交账户

通过向本地预览端口 URL 添加标准

admin/
扩展名来打开管理面板。预计这将导致经典的 django 管理面板。

访问管理网址会导致 error message

网站显示正常。

目前正在实施简单的谷歌誓言登录。

错误信息:

DoesNotExist at /admin/login/
Site matching query does not exist.
Request Method: GET
Request URL:    http://8000-lmcrean-project4-avaw7dd1zq8.ws-eu106.gitpod.io/admin/login/?next=/admin/
Django Version: 3.2.23
Exception Type: DoesNotExist
Exception Value:    
Site matching query does not exist.
Exception Location: /workspace/.pip-modules/lib/python3.9/site-packages/django/db/models/query.py, line 435, in get
Python Executable:  /home/gitpod/.pyenv/versions/3.9.17/bin/python3
Python Version: 3.9.17
Python Path:    
['/workspace/Project-4',
 '/home/gitpod/.pyenv/versions/3.9.17/lib/python39.zip',
 '/home/gitpod/.pyenv/versions/3.9.17/lib/python3.9',
 '/home/gitpod/.pyenv/versions/3.9.17/lib/python3.9/lib-dynload',
 '/workspace/.pip-modules/lib/python3.9/site-packages',
 '/home/gitpod/.pyenv/versions/3.9.17/lib/python3.9/site-packages']
Server time:    Sat, 11 Nov 2023 15:17:58 +0000

完整的追溯详细信息

目前正在尝试使用本教程修复

“设置 Google 登录以获得更快的 Django 登录体验。与蒂姆一起技术。” Akamai DevRel,YouTube 视频,2022 年 12 月 12 日,https://youtu.be/yO6PP0vEOMc?feature=shared&t=1328。访问日期:2023 年 11 月 11 日。

  • 已正确遵循所有工作长达 22 分钟
  • 最近根据教程为 google oauth 设置了 url、视图和模板后进行了迁移,没有明显的问题
  • 之前 django-admin 面板似乎工作正常

settings.py 和 url 可能是问题区域

已安装的应用程序在 settings.py 上似乎没问题 - 可以在此处查看完整内容

这是最近实现的,但根据教程是正确的:

AUTHENTICATION_BACKENDS = (
    "django.contrib.auth.backends.ModelBackend",
    "allauth.account.auth_backends.AuthenticationBackend"
)

urls.py 中的 urlpatterns

urlpatterns = [
    path('admin/', admin.site.urls),
    path("", include("blog.urls"), name="blog-urls"),
    path('summernote/', include('django_summernote.urls')),
    path("accounts/", include("allauth.urls")),
    path("", include("users.urls"))
]
django django-admin django-urls django-settings
1个回答
0
投票

当 settings.py 中的 SITE_ID 设置引用数据库中不存在的 Site 对象时,Django 中通常会出现错误消息“站点匹配查询不存在”。

我通过检查现有站点 ID 设法使用 Python Shell 调试此问题。

from django.contrib.sites.models import Site
existing_site = Site.objects.get(domain='http://127.0.0.1:8000')
print(existing_site.id)

返回语句显示 SITE_ID 应为 2,而不是之前设置的 1。

已通过更新 settings.py 以匹配正确的站点 ID 来修复此问题:

SITE_ID = 2

The django admin panel can now be accessed 没有任何进一步的错误。

© www.soinside.com 2019 - 2024. All rights reserved.