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

ran*_*its 7 python django

我正在尝试为用户的配置文件显示一个简单的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))
Run Code Online (Sandbox Code Playgroud)

我只是想更新现有的个人资料,而不是添加新个人资料.

Wog*_*gan 8

试试这个:

@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))
Run Code Online (Sandbox Code Playgroud)