Reputation: 7739
How can i prevent model saving before formset validation ? Code exemple:
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 is used to create a new *stock_movement*)
I would like save form after check validity of formset.
I found something like:
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()
But i don't know if it's a good way (found here).
Upvotes: 2
Views: 870
Reputation: 34553
I would check for validity of the form and the formsets as such:
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()
Upvotes: 4