【发布时间】:2021-05-21 00:16:52
【问题描述】:
所以我使用 auth.models.user 来创建用户模型,默认情况下它通过 ('first_name', 'last_name', 'username', 'email', 'password1' ,'密码2')。和 forms.py:
class UserSignUpForm(UserCreationForm):
class Meta:
fields = ('first_name','last_name','username', 'email', 'password1', 'password2')
model = user
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.fields['username'].label = 'Username'
self.fields['email'].label = "Email Address"
我尝试允许用户从 UserSignUpForm 中的所有可用字段编辑他们的个人信息,除了密码字段。所以我创建了这个 views.py(基于函数的视图):
def edit_account(request):
user = request.user
form = UserSignUpForm(instance=user)
if request.method == 'POST':
form = UserSignUpForm(request.POST, instance=user,)
if form.is_valid():
form = UserSignUpForm(instance=user)
form.save()
messages.success(request, 'Your account has been updated.')
return redirect('/dashboard/profile/')
context = {'editform':form}
return render(request, 'accounts/updateaccounts.html', context)
尝试在 html 页面中传递特定字段表单(如 {{editform.first_name}})(因为我不希望用户能够编辑他们的密码),但它仍然没有更新/保存新的用户数据。有什么方法可以保存吗?谢谢
【问题讨论】:
标签: django django-models django-forms