Python Django中的表单问题
我正在尝试实现一个表单,让用户更改他们的密码 代码如下: forms.py views.pyPython Django中的表单问题,python,django,django-forms,Python,Django,Django Forms,我正在尝试实现一个表单,让用户更改他们的密码 代码如下: forms.py views.py 它不起作用,因为未定义用户。问题是如何将用户传递给表单。思想?谢谢。可以从请求中获取用户列。一般来说,用户只需将其作为save方法的一个参数即可 是的,但我的问题是如何将其传递给表单。 class ChangePasswordForm(forms.Form): password1 = forms.CharField(widget = forms.PasswordInput(), required
它不起作用,因为未定义用户。问题是如何将用户传递给表单。思想?谢谢。可以从请求中获取用户列。一般来说,用户只需将其作为save方法的一个参数即可
是的,但我的问题是如何将其传递给表单。
class ChangePasswordForm(forms.Form):
password1 = forms.CharField(widget = forms.PasswordInput(), required = True)
password2 = forms.CharField(widget = forms.PasswordInput(), required = True)
def clean_password2(self):
password1 = self.cleaned_data.get("password1", "")
password2 = self.cleaned_data["password2"]
if password1 != password2:
raise forms.ValidationError("The two password fields didn't match.")
return password2
def save(self, *args, **kw):
self.user.set_password(self.cleaned_data['password1'])
print "Pass setted."
self.user.save()
def change_password(request):
form = ChangePasswordForm()
if request.method == 'POST':
form = ChangePasswordForm(request.POST, instance = request.user)
if form.is_valid():
password1 = form.cleaned_data['password1'];
password2 = form.cleaned_data['password2'];
print password1 + " == " + password2
form.save()
messages.success(request, "Password updated!")
return HttpResponseRedirect('')
return render(request, 'change_password.html', {'form': form})
def save(self, user):
user.set_password(self.cleaned_data['password1'])
user.save()
...
form.save(request.user)