Django:ModelForm的save()方法没有更新数据库

时间:2011-05-25 22:43:53

标签: django django-forms

我在保存和更新数据库时遇到问题。

查看:

def code_prof_edit(request, ampCode):
    user_code = get_object_or_404(CodeUser, pk=ampCode)
    if request.method =='POST':
        form = CodeUserForm(request.POST, instance=user_code)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/codes/' + user_code.ampCode)
    else:
        form = CodeUserForm(instance=user_code)
        return render_to_response('edit_code_user.html', {'user_code':user_code, 'form':form})

相关模板表单标记:

<form action="." method="POST"> {% csrf_token %}
    {{form.as_p}}
    <input type="submit" value="Save" />
</form>

使用post方法,表单在浏览器中正确呈现预先填充的所有原始值,但如果我更改值并单击“提交”,则不会进行任何更改。一切似乎都正常工作,因为用户被重定向到正确的页面,这意味着必须已经调用了保存,但是没有保存输入的信息。任何和所有的帮助将不胜感激。

编辑整个视图功能:

from django.shortcuts import render_to_response, get_object_or_404
from django.http import *
from django.template import RequestContext
from codeuser.models import CodeUser
from codeuser.forms import CodeUserForm
import pdb

def code_prof_edit(request, ampCode):
    user_code = get_object_or_404(CodeUser, pk=ampCode)
    if request.method =='POST':
        pdb.set_trace()
        form = CodeUserForm(request.POST, instance=user_code)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/codes/' + user_code.ampCode)
        else:
            return render_to_response('home.html')
    else:
        form = CodeUserForm(instance=user_code)
        return render_to_response('edit_code_user.html', {'user_code':user_code, 'form':form})

编辑:想出来。在html表单标记中,action属性不正确。 “”我没有工作,我需要“./edit”才能得到正确的结果。此外,排除该属性也完美地起作用。

0 个答案:

没有答案