0
我準備了用於編輯用戶配置文件(名稱,姓氏,電子郵件和密碼)的視圖和表單。問題是我能夠更改用戶配置文件(密碼),但在所有django重定向到登錄視圖後。看起來,django在數據更改後註銷用戶。但爲什麼?django用戶配置文件使用login_required編輯
view.py
@login_required()
def edit_user_view(request):
template_name = "user_account/user_edit.html"
form = EditUserForm(request.POST or None, instance=request.user)
if form.is_valid():
new_user_data = form.save()
new_user_data.set_password(form.cleaned_data['new_password_1'])
new_user_data.save()
return HttpResponseRedirect('/user_account/user_edit/')
return render(request, template_name, {'form': form,
'edit_succes': True})
forms.py
class EditUserForm(forms.ModelForm):
class Meta:
model = User
fields = ['email', 'name', 'surname']
new_password_1 = forms.CharField(max_length=30, min_length=8)
new_password_2 = forms.CharField(max_length=30, min_length=8)
user_edit.html
<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save" />
</form>
調用'update_session_auth_hash'而不是禁用會話認證中間件可能是一個更好的主意(請參閱[此問題上的答案](http://stackoverflow.com/questions/36158486/django-password-change)) 。這樣,其他會話將被註銷,但當前會話保持登錄狀態。 – Alasdair