我有我的自定义用户模型:
class RemoteUser(AbstractUser):
class Meta:
verbose_name= 'MyUser'
verbose_name_plural = 'MyUsers'
# Custom fields here...
如何设置我的用户管理员表单以编辑隐藏密码的用户详细信息?
class RemoteUserForm(UserCreationForm):
# What do I put here?
即使我从字段中排除password
,它也一直给我KeyError 'password1'
。
使用ModelForm
,使用它非常简单。您可以在可以指定要编辑的字段中创建用于编辑用户对象的表单类。在视图中使用此表单保存输入数据,并使用模板中的上下文完成循环。
Forms.py
从 django.contrib.auth.models import User
class EditUserForm(forms.ModelForm):
class Meta:
model = User
fields = {'username'}
Views.py
def update_userprofile(request, pk):
user = User.objects.get(pk=pk)
user_form = EditUserForm(instance=user)
if request.user.id == user.id:
if request.method == "POST":
user_form = EditUserForm(request.POST, instance=user)
if user_form.is_valid():
created_user = user_form.save(commit=False)
return redirect('someview') #wherever you want
return render(request, "app_name/update_userprofile.html", {
"noodle": pk,
"noodle_form": user_form,}
else:
raise PermissionDenied
Update_userprofile.html
<form method="post">
{% csrf_token %} {{ noodle_form.as_p }}
<button type="submit">Submit</button>
</form>