如何解决Django:ModelForm的save方法未更新数据库
|| 我在保存和更新数据库值时遇到问题。 视图: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方法,该表单将在浏览器中正确呈现所有预填充的原始值,但是如果我更改这些值并单击Submit,则不会进行任何更改。一切似乎都能正常工作,因为用户已重定向到正确的页面,这意味着必须已调用保存,但是不会保存键入的信息。任何和所有帮助将不胜感激。
编辑整个视图功能:
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,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\',\'form\':form})
编辑:想通了。在html表单标签中,action属性不正确。 \“。\”不起作用,我需要\“ ./ edit \”才能获得正确的结果。同样,排除该属性也可以完美地工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。