Django表单未保存

Django表单未保存,django,forms,Django,Forms,我正在尝试使用与创建用户帐户相同的表单更新自定义用户的字段。用户帐户工作正常,form.is_valid()返回true,导致保存和重定向,但是在下面的代码中,重定向从未发生,并且在使用提交按钮时不会保存表单上更新的字段。我觉得我错过了一些简单的东西,但就是看不见。是否有以下视图不保存表单上更新的数据的原因 谢谢 def update_user(request): user = Customer.objects.get(pk=request.user.id) form = Cus

我正在尝试使用与创建用户帐户相同的表单更新自定义用户的字段。用户帐户工作正常,form.is_valid()返回true,导致保存和重定向,但是在下面的代码中,重定向从未发生,并且在使用提交按钮时不会保存表单上更新的字段。我觉得我错过了一些简单的东西,但就是看不见。是否有以下视图不保存表单上更新的数据的原因

谢谢

def update_user(request):
    user = Customer.objects.get(pk=request.user.id)
    form = CustomerForm(instance=user)
    if request.method == 'POST':
        form = CustomerForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('success.html')

    args = {}
    args.update(csrf(request))
    args['form'] = form
    return render_to_response('update.html', args)

您是否尝试打印表单。\u表单无效时出现错误?这是调试类似问题的好方法。这里有固定代码:

def update_user(request):
    user = Customer.objects.get(pk=request.user.id)
    form = CustomerForm(instance=user)
    if request.method == 'POST':
        form = CustomerForm(request.POST, instance=user) # HERE
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('success.html')

    args = {}
    args.update(csrf(request))
    args['form'] = form
    return render_to_response('update.html', args)
此外,您还可以替换此代码:

form = CustomerForm(instance=user)
if request.method == 'POST':
    form = CustomerForm(request.POST, instance=user) # HERE
    if form.is_valid():
        form.save()
        return HttpResponseRedirect('success.html')
对于这个(工作原理相同):

form = CustomerForm(request.POST or None, instance=user)
if form.is_valid():
    form.save()
    return HttpResponseRedirect('success.html')