网站前台希望通过 form 管理文章,直接新增文章是没有问题的,但是我在建立修改文章页面的时候出现了无法更改,排查是 data didn't validate,但是这个值是直接读取的该文章的数据。所以不知道什么情况,form 代码如下(与新增文章用的同一个 form ):
from django.forms import ModelForm
from order.models import Order
class OrderForm(ModelForm):
class Meta:
model = Order
fields = ('title',
'go_time',
'adult_num',
'kid_num',
'adult_num',
'adult_money',
'adult_moneys',
'kid_money',
'kid_moneys',
'link_man',
'link_phone',
'customer',
'travel',
'sale_man',
'money_status',
'sum_money',
)
views 代码如下:
def edit(request,id):
obj = get_object_or_404(Order, id=id)
form = OrderForm(request.POST or None, request.FILES or None, instance=obj)
if form.is_valid():
form.save()
return redirect('')
return render(request, 'edit.html', {'form': form,'obj':obj})
Html 里是以这种方式展示的:
<form method="post">
{% csrf_token %}
{{ form.title }}
<input type="submit" value="确认修改">
整个流程就是这样,Html 能够顺利读出该 id 下文章的数值并填在 form 生成的 input 里,但修改之后提交不能完成修改,排查原因是data didn't validate.
搜索很久没有头绪,希望老司机指点下该怎么写或者怎么排查
一
检查你的model Order 实例中的每个字段是否允许为空,可能你的显示字段不全,但是保存却需要有值才能入库。
二
检查你的填写的值是否通过验证。