Сброс пароля Django

Я очень новичок в Django и пытаюсь создать структуру аутентификации для своего приложения Django, и она падает, когда я пытаюсь создать приложения password_reset и password_reset_done. Я использую встроенный фреймворк Django и ни в какой степени не настраивал

Это мои URL

from django.conf.urls import url
from django.contrib import admin
from . import views
from django.contrib.auth import views as auth_views



  url(r'^change-password/$', views.change_password, name='change_password'),
    url(r'^password_reset/$', auth_views.PasswordResetView.as_view(template_name = "registration/password_reset.html"), name='password_reset'),
    url(r'^password_reset_done/', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'),
    url(r'^password_reset_confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
        auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    url(r'^password_reset_complete/$',auth_views.PasswordResetCompleteView.as_view(), name = "password_reset_complete"),

Это сообщение об ошибке, которое я получаю

NoReverseMatch at /partners/password_reset/
Reverse for 'password_reset_confirm' not found. 'password_reset_confirm' is not a valid view function or pattern name.
Request Method: POST
Request URL:    http://127.0.0.1:8000/partners/password_reset/
Django Version: 2.1.1
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'password_reset_confirm' not found. 'password_reset_confirm' is not a valid view function or pattern name.
Exception Location: C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\urls\resolvers.py in _reverse_with_prefix, line 622
Python Executable:  C:\Users\User\AppData\Local\Programs\Python\Python37-32\python.exe
Python Version: 3.7.0
Python Path:    
['C:\\Users\\User\\Desktop\\protectandserve',
 'C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python37-32\\python37.zip',
 'C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs',
 'C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python37-32\\lib',
 'C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python37-32',
 'C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages',
 'C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\django-2.1.1-py3.7.egg',
 'C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\pytz-2018.5-py3.7.egg']
Server time:    Thu, 4 Oct 2018 07:49:46 +0000


Error during template rendering
In template C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\contrib\admin\templates\registration\password_reset_email.html, error at line 6

Reverse for 'password_reset_confirm' not found. 'password_reset_confirm' is not a valid view function or pattern name.
1   {% load i18n %}{% autoescape off %}
2   {% blocktrans %}You're receiving this email because you requested a password reset for your user account at {{ site_name }}.{% endblocktrans %}
3   
4   {% trans "Please go to the following page and choose a new password:" %}
5   {% block reset_link %}
6   {{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}
7   {% endblock %}
8   {% trans "Your username, in case you've forgotten:" %} {{ user.get_username }}
9   
10  {% trans "Thanks for using our site!" %}
11  
12  {% blocktrans %}The {{ site_name }} team{% endblocktrans %}
13  
14  {% endautoescape %}
15  


  [1]: https://i.stack.imgur.com/eGmJT.png

Сброс пароля Django

Сброс пароля Django

Как вы думаете, кто-то может воспроизвести эту ошибку, если в вопросе отсутствует ... код?

ZF007 04.10.2018 10:26

Пожалуйста, опубликуйте свое определение password_reset_confirm.

Vishal Raghavan 04.10.2018 10:31

Пожалуйста, укажите, какой дополнительный код вам нужен помимо указанного выше, @ ZF007. Я не определил password_reset_confirm, так как понял это как встроенный

project_kingz 04.10.2018 10:32

Я понял auth_views.PasswordResetConfirmView.as_view () как встроенную функцию с определением

project_kingz 04.10.2018 10:38

code = "definition", чтобы быть конкретным в этом случае. Как уже упоминал Вишал.

ZF007 04.10.2018 10:39

Этот файл url.py относится к другому приложению, например, учетным записям ... или к вашему основному проекту?

Pankaj Sharma 04.10.2018 11:03

вы импортировали встроенную функцию в urls.py? Что-то вроде from django.contrib.auth import views as auth_views?

Vishal Raghavan 04.10.2018 11:04

url.py находится в другом приложении под названием - partners .... Его нет в основном проекте

project_kingz 04.10.2018 11:04

из django.contrib.auth импортировать представления как auth_views

project_kingz 04.10.2018 11:06
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
9
2 346
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Как вы упомянули, urls.py предназначен для партнеров, поэтому обратный вызов должен быть для партнеров, измените свой шаблон {% url 'password_reset_confirm' uidb64=uid token=token %} к {% url 'partners:password_reset_confirm' uidb64=uid token=token %}.

partners - это имя приложения. Это сработает.

Ответ принят как подходящий
  1. Скопируйте C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\contrib\admin\templates\registration\password_reset_email.html в partners\templates\registration\
  2. Измените строку 6 файла partners\templates\registration\password_reset_email.html на

    {{ protocol }}://{{ domain }}{% url 'partners:password_reset_confirm' uidb64=uid token=token %}
    
  3. Обновите свой urls.py, чтобы он указывал на правильный шаблон:

    url(
        r'^password_reset/$',
        auth_views.PasswordResetView.as_view(
            template_name = "registration/password_reset.html",
            email_template_name = "registration/password_reset_email.html",
            success_url=reverse_lazy('partners:password_reset_done'), # might be required
        ),
        name='password_reset'
    ),
    

Спасибо @Vaibhav Vishal. Кажется, я получаю сообщение об ошибке TemplateDoesNotExist в / partners / password_reset /. partners / registration / password_reset_email.html

project_kingz 04.10.2018 12:52

@Vailbhav Vishal Я добавил к своему вопросу 2 скриншота, чтобы продемонстрировать свою структуру. Сообщите мне, если вам понадобится дополнительный код

project_kingz 04.10.2018 13:27

СПАСИБО СПАСИБО СПАСИБО . Вы легенда!

project_kingz 04.10.2018 13:55

Спасибо - это ИМЕННО решило мою недельную проблему!

Laurits L. L. 12.02.2020 11:20

Другие вопросы по теме