更改用户详细信息时,UNIQUE约束失败的用户名错误 [英] UNIQUE constraint failed username error while changing user details
本文介绍了更改用户详细信息时,UNIQUE约束失败的用户名错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我通过扩展 AbstractUser
类具有自定义用户模型。我想制作表格来更改用户的全名和网站字段。
我的用户:
I have custom user model by extending AbstractUser
class. I want to make form to change user's fullname and website field.
My user:
class Hacker(AbstractUser):
name = models.CharField(max_length=255)
team = models.ForeignKey(Team, on_delete=models.CASCADE, blank=True, null=True)
description = models.CharField(max_length=255, blank=True, null=True)
website = models.URLField(max_length=200, blank=True, null=True)
def __str__(self):
if self.name:
return self.name
else:
return self.username
然后使用form.py:
And forms.py:
class ProfileForm(forms.ModelForm):
"""
Edit profile form
"""
name = forms.CharField(label=_("Name"),
widget=forms.TextInput(attrs={'placeholder': _('Name')}))
description = forms.CharField(label=_("Description,Position"), required=False,
widget=forms.TextInput(attrs={'placeholder': _('Description, Position')}))
website = forms.URLField(label=_("Website"), required=False,
widget=forms.TextInput(attrs={'placeholder': _('Website URL')}))
class Meta:
model = get_user_model()
fields = ['name', 'description', 'website']
在页面中,我使用{{field}}添加输入并在POST部分视图中:
In page I use {{ field }} to add inputs and in POST part of views:
form = ProfileForm(request.POST)
if form.is_valid():
form.save(commit=True)
...
但是 form.save
给出 UNIQUE约束失败:common_hacker.username
错误。
推荐答案
添加 instance = request.user
创建表单固定问题时:
Adding instance=request.user
when creating form fixed problem:
form = ProfileForm(request.POST,instance = request.user)
这篇关于更改用户详细信息时,UNIQUE约束失败的用户名错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文