gpt4 book ai didi

python - NoReverseMatch at/password_reset_complete/'users' 不是注册的命名空间

转载 作者:行者123 更新时间:2023-12-05 07:07:16 30 4
gpt4 key购买 nike

基本 urls.py:

from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views
from users import views as user_views

urlpatterns = [
path('admin/', admin.site.urls),
path('register/', user_views.register , name='register'),
path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='users/logged_out.html'), name='logout'),
path('password_reset/',
auth_views.PasswordResetView.as_view(template_name='users/password_reset.html'),
name='password_reset'),
path('password_reset/done/',
auth_views.PasswordResetDoneView.as_view(template_name='users/password_reset_done.html'),
name='password_reset_done'),
path('password_reset_confirm/<uidb64>/<token>/',
auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'),
name='password_reset_confirm'),
path('password_reset_complete/',
auth_views.PasswordResetCompleteView.as_view(template_name='users/password_reset_complete.html'),
name='password_reset_complete'),
path('', include('learning_logs.urls')),
]

password_reset_confirm.html:

{% extends "learning_logs/base.html" %}
{% load bootstrap4 %}

{% block page_header %}
<h2>Reset your password.</h2>
{% endblock page_header %}

{% block content %}
<form method="post">
{% csrf_token %}
{% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Submit</button>
</form>

{% endblock content %}

password_reset_complete.html:

{% extends "learning_logs/base.html" %}

{% block content %}
<p>Password changed </p>
<a href="{% url 'login' %}">Sign in</a>
{% endblock content %}

我试图找到错误所指的命名空间“用户”的引用。但我不知道来源在哪里。每当我填写 password_reset_confirm 字段以重置密码时,我都会收到此错误。有什么想法吗?

回溯:

Traceback (most recent call last):
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\urls\base.py", line 72, in reverse
extra, resolver = resolver.namespace_dict[ns]
KeyError: 'users'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\views\generic\base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
return handler(request, *args, **kwargs)
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\views\generic\base.py", line 158, in get
context = self.get_context_data(**kwargs)
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\contrib\auth\views.py", line 326, in get_context_data
context['login_url'] = resolve_url(settings.LOGIN_URL)
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\shortcuts.py", line 131, in resolve_url
return reverse(to, args=args, kwargs=kwargs)
File "C:\Users\Shebeli\desktop\jango\ll_env\lib\site-packages\django\urls\base.py", line 83, in reverse
raise NoReverseMatch("%s is not a registered namespace" % key)
django.urls.exceptions.NoReverseMatch: 'users' is not a registered namespace

最佳答案

此解决方案通常可以在这里提供帮助!最好在 settings.TEMPLATES

中定义模板目录 DIRS 列表

一种常见的方法是在每个具有以下层次结构的应用程序中放置一个:

testproject/
testproject/
settings.py
urls.py
....
users/
models.py
views.py
....
templates/
users/
password_reset.html
....
manage.py
....

然后,在 settings.py 中明确提及模板 DIR:

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
'users/templates'
],
....
}
]

这将避免 Django 混淆。现在,您可以像上面提到的那样添加模板名称:template_name='users/password_reset.html'

关于python - NoReverseMatch at/password_reset_complete/'users' 不是注册的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62219361/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com