我在保存和更新数据库时遇到问题。
查看:
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”才能得到正确的结果。此外,排除该属性也完美地起作用。