当您单击“保存”按钮时,会出现上述错误,但在文档中,我认为我输入了正确的参数。这段代码在我的views.py中的位置:
class AllUserUpdate(LoginRequiredMixin, View):
def get(self, request, *args, **kwargs):
alluser = CustomUser.objects.get(username=self.request.user.username)
form = CustomUserForm(instance=alluser)
context = {'form':form}
return render(request, 'account/AllUserAccount.html', context)
def post(self, request, *args, **kwargs):
form = CustomUserForm(self.request.POST, self.request.FILES, instance=self.request.user.username)
if form.is_valid():
form.save()
messages.info(self.request, "Your are change successfully created!")
context = {'form': form}
return redirect('all_user_update')这就是我的模板的样子:
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<h3>Full name: {{ request.user.full_name }}</h3>
{{ form.as_p }}
<input type="submit" class=" btn btn-primary" value="Save">
</form>forms.py:
class CustomUserForm(UserCreationForm):
password1 = forms.CharField(widget=forms.PasswordInput(
attrs={'class': 'form-control mt-2', 'name': 'password1', 'placeholder': 'enter the password...'}))
password2 = forms.CharField(widget=forms.PasswordInput(
attrs={'class': 'form-control mt-2', 'name': 'password2', 'placeholder': 'Repeat the password...'}))
class Meta:
model = CustomUser
fields = ('full_name', 'email', 'user_type', 'phone', 'password1', 'password2', 'username')
widgets = {
'full_name': forms.TextInput(attrs={'class': 'form-control mt-2', 'name': 'full_name'}),
'username': forms.TextInput(attrs={'class': 'form-control mt-2', 'name': 'username'}),
'email': forms.EmailInput(attrs={'class': 'form-control mt-2', 'name': 'email'}),
'phone': forms.TextInput(attrs={'class': 'form-control mt-2', 'name': 'phone'}),
'user_type': forms.Select(attrs={'class': 'form-control mt-2', 'name': 'user_type'}),
}

我希望用户更改他们的个人页面。
发布于 2021-07-17 16:50:21
在这条线上:
form = CustomUserForm(self.request.POST, self.request.FILES, instance=self.request.user.username)您正在传递一个字符串(str)作为表单的instance。这不是instance参数所期望的;它需要一个Model实例(就像您在get方法中正确地传递它一样,前面几行)。
将希望作为instance更新的instance传递给您,例如:
customuser = CustomUser.objects.get(username=request.user.username)
form = CustomUserForm(request.POST, instance=customuser)https://stackoverflow.com/questions/68422363
复制相似问题