1

私は次のモデルを持っています:

class Recipe(models.Model):
    fields...

class Ingredient(models.Model):
    fields...

class UsesIngredient(models.Model):
    recipe = models.ForeignKey(Recipe)
    ingredient = models.ForeignKey(Ingredient)
    amount = models.FloatField()
    group = models.CharField()

ユーザーが動的フォームセットを介して特定のレシピの「UsesIngredient」モデルをいくつでも追加できるビューがあります。グループ属性は、ユーザーから非表示に自動的に入力されます。

問題は、ユーザーがフォームセットに新しいフォームを追加しても、どのフィールドにも入力しない場合、そのフォームを保存したくないということです。ただし、「グループ」属性が「変更」されているため(追加のフォームが作成されたときに自動的に入力されたため)、djangoは引き続きフォームを保存しようとします。

これを回避する方法はありますか?

ありがとう!

4

2 に答える 2

0

を設定して、すべてのフィールドに値を要求するようにしてみてくださいblank=False。詳しくはこちらをご覧ください。気になる値が空白になっていないことを確認する必要があります。

それが機能しない場合saveは、関心のある検証を行う独自のカスタム メソッドを作成してみてください。

def save(self, *args, **kwargs):
   # Do your checks on the properties such as self.group, self.amount, etc
   # If it is fine then call
   super(UsesIngredient, self).save(*args, **kwargs)
于 2013-10-20T17:57:54.407 に答える