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。