2

フォームセットの検証前にモデルを保存しないようにするにはどうすればよいですか? コード例:

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 は、新しい *stock_movement*を作成するために使用されます)

formsetの有効性を確認した後、フォームを保存したいと思います。

私は次のようなものを見つけました:

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()

しかし、それが良い方法かどうかはわかりません(ここにあります)。

4

1 に答える 1

4

フォームとフォームセットの有効性を次のように確認します。

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()
于 2013-10-21T12:31:02.360 に答える