Porównaj ceny domen i usług IT, sprzedawców z całego świata

Problem z Django Reverse ()


Tęsknię za czymś naprawdę podstawowym.
Próbuję ponownie wykorzystać zmianę hasła Django. Mam następujące informacje w URLS.PY:
(r'^change-password/$', 'profile.views.change_password', {},'change_password'),
url(r'^change-password-done/$', 'profile.views.password_change_done', name='django.contrib.auth.views.password_change_done'),

iw odpowiednich widokach.py:
from django.contrib.auth.views import password_change, password_change_donedef change_password(request,template_name="password_change_form.html"):
"""Change Password"""
return password_change(request,template_name=template_name)def password_change_done(request, template_name="password_change_done.html"):
return render_to_response(template_name,(),context_instance= RequestContext(request))

ale pojawia się następujący błąd:

Odwrotnie
'django.contrib.auth.views.password_change_done'
z argumentami "()" i
nie znaleziono argumentów słowa kluczowego „{}”.

spojrzał na źródło i zobaczył tę linię:
post_change_redirect = reverse('django.contrib.auth.views.password_change_done')

Jeśli zmienę wejście do adresu URLS.py do następnego, nie otrzymam powyższego błędu:
url(r'^change-password-done/$', 'django.contrib.auth.views.password_change_done', name='anything'),

Ale jestem zdezorientowany, ponieważ odwraca () powinien wyszukiwać za pomocą parametru "Nazwa"? Czego tutaj tęsknię?
Używam Django 1.2.3
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Josh ma wyjaśnienie, ale robisz to źle. Jeśli chcesz zastąpić post_save_redirect , wyślij go jako parametr podczas wywołania widoku:
def change_password(request,template_name="password_change_form.html"):
return password_change(request, template_name=template_name,
post_save_redirect=reverse('my_done_page'))

Cm.

Dokumentacja
http://docs.djangoproject.com/ ... hange
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Funkcja
reverse
nie wyszukuje tylko według nazwy.
Odwrotna dokumentacja
http://docs.djangoproject.com/ ... verse
.

reverse (nazwa_widoku, url-config = no, parametr args = no, kwargs = no, current_app = no)
nazwa_widoku to nazwa funkcji (odniesienie do funkcji lub ciągowa wersja nazwy, jeśli użyłeś tego formularza w urlpatterns) lub nazwa wzorca adresu URL.

Więc wykonując
reverse ('django.contrib.auth.views.password_change_done')
, będzie szukał nazwy tego widoku w wyrażeniu regularnym
urls.py
i wróci do znalezienia argument słowo kluczowe
name
, jeśli nazwa widoku nie zostanie rozwiązana.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się