Я использую Django 1.2.3-3+squeeze1
с сжатым Debian.
Я пытаюсь использовать представление смены пароля Django в своем приложении
соответствует django.contrib.auth.views.password_change
. это
Похоже, это должно быть просто, но у меня были
проблемы.
Для простоты и полноты я укажу на файлы моего приложения
онлайн. Приложение bixfile .
соответствующий проект Django: bixproj .
Соответствующая строка в url.py
https://bitbucket.org/faheem/bixfile/src/49bcbab3a7be/urls.py#cl-65,
а именно
url(r'^password_change/$', 'django.contrib.auth.views.password_change', {'post_change_redirect':reverse('top_folders')}, name="password_change"),
Это нарушает любой шаблон, в котором он используется. В настоящее время я только
используя его в строке
https://bitbucket.org/faheem/bixfile/src/71de33d01f43/templates/calgb_base.html#cl-21
шаблона calgb_base.html, который входит в набор
шаблоны, включая представление индекса верхнего уровня, соответствующее
шаблон
https://bitbucket.org/faheem/bixfile/src/71de33d01f43/templates/index.html.
строка в calgb_base.html равна
<li><a class="side" href="{% url password_change %}">Password Change</a></li>
При переходе наверх index
представление, соответствующее
https://bitbucket.org/faheem/bixfile/src/71de33d01f43/urls.py#cl-16
а также
https://bitbucket.org/faheem/bixfile/src/71de33d01f43/views.py#cl-203
Я вижу ошибку, начиная с
Caught NoReverseMatch while rendering: Reverse for 'password_change'
with arguments '()' and keyword arguments '{}' not found.
Я сомневаюсь, что полный возврат полезен, но я вставил его в
http://paste.lisp.org/display/122996.
Эта ошибка также воспроизводится как в Apache 2.2, так и в mod-wsgi.
как встроенный тестовый сервер Django (см. ниже).
Если я перейду непосредственно к / password_change / относительной ссылке, я увижу
Форма для изменения пароля, как и ожидалось.
Странно то, что все тесты, которые я написал, чтобы проверить это
пройти и дать ожидаемый результат. Смотри например
testIndexUrl
,
testIndexView
а также
test_password_change_url .
Вы можете запустить тесты из каталога bixproj
с помощью
python manage.py test
Если вы хотите воспроизвести эту ошибку, это сравнительно легко.
Сначала скачайте проект (bixproj
) и репозитории приложений
(bixfile
). Так
hg clone ssh://hg@bitbucket.org/faheem/bixproj
hg clone ssh://hg@bitbucket.org/faheem/bixfile
Затем убедитесь, что bixfile находится в пути Python. Изменить базы данных для использования
SQLite. Затем измените
LOGIN_URL = '/'+BIXFILE_NAME+'/login/'
LOGIN_REDIRECT_URL= '/'+BIXFILE_NAME+'/'
до
LOGIN_URL = '/login/'
LOGIN_REDIRECT_URL= '/'
Затем работает
python manage.py runserver
в каталоге bixproj
на локальном компьютере и переход на URL по умолчанию
http://127.0.0.1:8000/
должно отображать ошибку.
Я ожидаю, что смогу привести минимальный пример, показывающий ошибку, если
необходимо, но я действительно надеюсь, что эта ошибка очевидна, и я не
должен. Заранее спасибо.