gpt4 book ai didi

python - 避免在 Django 用户编辑表单中进行用户 pk

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:26 25 4
gpt4 key购买 nike

我想创建一个 Django 表单来编辑用户信息。我有:

urls.py

url(r'^settings/(?P<pk>[0-9]+)/', views.edit_profile, name='edit'),

views.py

@login_required
def edit_profile(request, pk):
user = get_object_or_404(User, pk=pk)
if request.method == 'POST':
form = UserForm(request.POST, instance=user)

if form.is_valid():
form.save()
else:
form = UserForm(instance=user)
return render(request, 'edit_user.html', {'form': form})

这样,当用户编辑其信息时,可以更改 url 的 pk 并查看其他用户的信息。如何在 url 中隐藏此 pk?

谢谢。

最佳答案

根本不需要接受 URL 中的 pk。登录的用户始终以 request.user 形式提供,因此您可以将其作为实例参数直接传递给表单。

if request.method == 'POST':
form = UserForm(request.POST, instance=request.user)

if form.is_valid():
form.save()
else:
form = UserForm(instance=request.user)
return render(request, 'edit_user.html', {'form': form})

关于python - 避免在 Django 用户编辑表单中进行用户 pk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47188250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com