表单集验证时管理表单数据丢失错误
当我试图用中间的m2m表子窗体集保存父窗体时,会出现此错误。我不知道如何解决,因为在回溯中缺乏关于这个错误的信息。请帮忙!在
模型.py
class Material(models.Model):
name = models.CharField(max_length=200)
familiy = models.ForeignKey(Material_family, on_delete=models.CASCADE, null=True)
…
class Purchase(models.Model):
number = models.IntegerField()
date = models.DateField()
…
class Purchase_detail(models.Model):
material = models.ForeignKey(Material, on_delete=models.CASCADE)
purchase = models.ForeignKey(Purchase, on_delete=models.CASCADE)
quantity = models.IntegerField()
unit_value = models.IntegerField(default=0)
表单.py
^{pr2}$视图.py
def purchase_new(request, purchase_id=None, *args, **kwargs):
template = 'erp/purchase_form.html'
if purchase_id:
inst = Purchase.objects.get(pk=purchase_id)
else:
inst = Purchase()
if request.method == 'POST':
form = PurchaseModelForm(request.POST or None, request.FILES, prefix='purchase', instance=inst)
formset = DetailFormSet(request.POST or None, request.FILES, prefix='detail')
form_valid = form.is_valid()
if form_valid:
purchase = form.save()
formset.save(commit=False)
for f in formset:
f.compra = purchase
f.save()
return redirect('...')
else:
form = PurchaseModelForm(prefix='purchase',instance=inst)
formset = DetailFormSet(prefix='purchase')
context = { 'form': form, 'formset': formset }
return render(request, template, context )
这是模板
<form method='POST' action="">
{% csrf_token %}
<div>
<h5 style="font-weight: bold;">Datos de la Compra</h5>
{% crispy form form.helper %}<hr/>
<h5 style="font-weight: bold;">Detalle de la Compra <a class="btn btn-rounded btn-sm btn-icon btn-default add-new-form"><i class="fa fa-plus text-success"></i></a></h5>
</div>
{{ formset.management_form|crispy }}
{% for x in formset %}
<div class="form-inline">
{{ x|crispy }}
<hr>
</div>
{% endfor %}
<div class="form-inline" id="empty-row">
{{ formset.empty_form|crispy }}
<hr>
</div>
<button class="btn btn-block btn-primary" >Guardar</button>
</form>
回溯是: 回溯:
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/core/handlers/异常.py“在里面 41response=get_response(请求)
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/core/handlers/基准.py“在你得到你的回应 187响应=self.process\u异常\u by_中间件(e,请求)
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/core/handlers/基准.py“在你得到你的回应 185response=wrapped_callback(请求,*callback_args,**callback_kwargs)
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/contrib/auth/装饰工.py“在“包装”视图中 23return view_func(请求,*args,**kwargs)
文件“/Users/jlattus/Dev/italuzbi/src/erp/视图.py“在购买中 415表单集.保存(提交=错误)
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/forms/模型.py“保存中 666返回self.save_现有的_对象(提交)+self.save_新对象(提交)
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/forms/模型.py“在保存现有的\u对象中 768如果没有self.initial_表单公司名称:
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/forms/表单集.py“以初始形式 189返回自我形式[:初始计数表单\u()]
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/utils/函数.py“在获取 35res=实例。dict[自身名称] = 自我功能(实例)
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/forms/表单集.py“在形式上 144我在射程内(self.total_form_计数())]
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/forms/表单集.py“总共有多少 116最小返回值(自我管理表。已清理的“数据”[窗体总数],自身绝对最大值)在
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/utils/函数.py“在获取 35res=实例。dict[自身名称] = 自我功能(实例)
文件“/Users/jlattus/Dev/italuzbi/lib/python3.5/site-packages/django/forms/表单集.py“以管理形式 98code='missing_management_form'
异常类型:ValidationError at/compra/new/ 异常值:['Los datos de ManagementForm faltan o han sido manipulados
目前没有回答
相关问题 更多 >
编程相关推荐