Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 在表单集验证之前防止模型保存_Django_Django Forms - Fatal编程技术网

Django 在表单集验证之前防止模型保存

Django 在表单集验证之前防止模型保存,django,django-forms,Django,Django Forms,如何在表单集验证之前防止模型保存?代码示例: form = StockMovementForm(data=data) Formset = inlineformset_factory(StockMovement, StockMovement.products.through, extra=2, can_delete=False) if form.is_valid(): stock_movement = form.save() formset = Formset(data=data, ins

如何在表单集验证之前防止模型保存?代码示例:

form = StockMovementForm(data=data)
Formset = inlineformset_factory(StockMovement, StockMovement.products.through, extra=2, can_delete=False)
if form.is_valid():
  stock_movement = form.save()
  formset = Formset(data=data, instance=stock_movement)
  if formset.is_valid():
    formset.save()
(StockMovementForm用于创建一个新的*StockMovement*)

检查表单集的有效性后,我想保存表单

我发现了类似于:

form = StockMovementForm(data=data)
Formset = inlineformset_factory(StockMovement, StockMovement.products.through, extra=2, can_delete=False)
formset = Formset(data=data)
if form.is_valid():
  if formset.is_valid():
    stock_movement = form.save()
    objects = formset.save(commit=False)
    for object in objects:
      object.movement = stock_movement
      object.save()

但我不知道这是否是一个好方法(找到)。

我会检查表单和表单集的有效性:

form = StockMovementForm(data=data)
Formset = inlineformset_factory(StockMovement,
    StockMovement.products.through, extra=2, can_delete=False)
formset = Formset(data=data)
if form.is_valid() and formset.is_valid():
    stock_movement = form.save()
    objects = formset.save(commit=False)
    for object in objects:
      object.movement = stock_movement
      object.save()

我会检查表格和表格集是否有效:

form = StockMovementForm(data=data)
Formset = inlineformset_factory(StockMovement,
    StockMovement.products.through, extra=2, can_delete=False)
formset = Formset(data=data)
if form.is_valid() and formset.is_valid():
    stock_movement = form.save()
    objects = formset.save(commit=False)
    for object in objects:
      object.movement = stock_movement
      object.save()

您是在编辑现有的库存移动实例还是在创建新的库存移动实例?这是一个新的库存移动对象。我编辑了这个问题的细节。在使用内联表单集时,您需要相关模型的实例…您到底想做什么?我正在使用一些相关(许多)库存移动产品创建库存移动。因此,如果在stock_movement_product的formset中发现错误,则stock_movement id已由form.save()创建。在问题中添加了一个internet。您是否正在编辑
stock_movement
的现有实例或创建一个新实例?它是一个新的stock_movement对象。我编辑了这个问题的细节。在使用内联表单集时,您需要相关模型的实例…您到底想做什么?我正在使用一些相关(许多)库存移动产品创建库存移动。因此,如果在stock_movement_product的formset中发现错误,则stock_movement id已由form.save()创建。在问题中添加了一个internet。