사용자가 암호 변경을 통해 도착했는지 여부는 설정보기에서 확인하지 않는 것이 좋습니다. 이상적으로는 암호 변경 논리가 모두 같은 위치에 있다고 생각합니다. 이렇게하면 논리를 쉽게 찾을 수 있으며 설정보기에서 암호 변경보기를 알 필요가 없습니다 (논리를 쉽게 변경하여 사용자를 다른 곳으로 리디렉션 할 수 있음).
최상의 방법은 password_change
보기를 사용하는 대신 PasswordChangeForm
을 기반으로 자신의보기를 작성하는 것입니다. 이 방법을 사용하면 the message framework을 사용하여 성공 메시지를 표시 할 수 있습니다.
예를 들어, 간단한 메시지를 표시하고 'settings'
이라는 URL 패턴으로 다시 리디렉션하려면보기를 작성할 수 있습니다 (예 : 메시지 프레임 워크를 활성화하고보기에 마크 업을 넣어야합니다. 등이 하나 같이
from django.contrib import messages
from django.contrib.auth.forms import PasswordChangeForm
from django.core.urlresolvers import reverse_lazy
from django.views.generic import FormView
class PasswordChangeView(FormView):
template_name = 'registration/password_change_form.html'
form_class = PasswordChangeForm
success_url = reverse_lazy('settings')
def get_form_kwargs(self):
kwargs = super(PasswordChangeView, self).get_form_kwargs()
kwargs['user'] = self.request.user
return kwargs
def form_valid(self, form):
form.save()
messages.success(self.request, "Your password has been changed.")
return super(FormView, self).form_valid(form)
희망의 password_change
보기가 될 것이다 더 적은 상용구와 같은 동작을 허용, 미래에 클래스 기반.
가능한 중복 [사용자가 암호를 변경하거나 암호 재설정을 요청할 때 알림을받는 방법?] (http://stackoverflow.com/questions/9132712/how-to-get-notified-when-a-user- 변경 - 비밀번호 또는 요청 - 비밀번호 재설정) – Alasdair
[Django messages] (https://docs.djangoproject.com/ko/1.4/ref/contrib/messages/)를보십시오. – PepperoniPizza