gpt4 book ai didi

python - Django,使用 ModelForm 更新用户配置文件

转载 作者:太空狗 更新时间:2023-10-29 21:33:01 26 4
gpt4 key购买 nike

我正在尝试为用户的配置文件显示一个简单的 ModelForm 并允许用户更新它。这里的问题是我的逻辑存在某种缺陷,在成功调用 form.save() 之后,旧值显示在页面上。直到刷新才显示适当的值。这里有什么问题?

@login_required
def user_profile(request):
success = False
user = User.objects.get(pk=request.user.id)
upform = UserProfileForm(instance=user.get_profile())

if request.method == 'POST':
userprofile = UserProfileForm(request.POST, instance=user.get_profile())
if userprofile.is_valid():
up = userprofile.save(commit=False)
up.user = request.user
up.save()
success = True

return render_to_response('profile/index.html',
locals(), context_instance=RequestContext(request))

我只是想更新现有的配置文件,而不是添加新的配置文件。

最佳答案

试试这个:

@login_required
def user_profile(request):
success = False
user = User.objects.get(pk=request.user.id)
if request.method == 'POST':
upform = UserProfileForm(request.POST, instance=user.get_profile())
if upform.is_valid():
up = upform.save(commit=False)
up.user = request.user
up.save()
success = True
else:
upform = UserProfileForm(instance=user.get_profile())

return render_to_response('profile/index.html',
locals(), context_instance=RequestContext(request))

关于python - Django,使用 ModelForm 更新用户配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1823588/

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