检查编辑用户代码以确保它更新现有数据库条目而不是创建新的。此外,可以实现一些数据验证措施,例如检查输入的电子邮件地址是否已存在于数据库中,以避免重复的用户。
示例代码(使用 Django):
from django.shortcuts import get_object_or_404
from django.contrib.auth.models import User
def edit_user(request, user_id):
user = get_object_or_404(User, pk=user_id)
if request.method == 'POST':
# 获取表单数据
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
# 检查 email 是否已被占用
if User.objects.filter(email=email).exclude(id=user.id).exists():
messages.error(request, '该邮箱已被占用。')
return render(request, 'edit_user.html', {'user': user})
# 更新用户信息
user.username = username
user.email = email
user.set_password(password)
user.save()
messages.success(request, '用户更新成功。')
return redirect('user_detail', user_id=user.id)
else:
return render(request, 'edit_user.html', {'user': user})
在此示例中,我们通过 get_object_or_404
获取要编辑的用户对象,并在提交表单后更新其信息。我们还使用 filter
和 exclude
方法来确保新输入的 email 地址不存在于其他用户的帐户中。如果 email 地址已经被占用,我们会显示错误信息,并显示编辑页面,以便用户可以更正输入。