3

Model.full_cleanの前にclean_fields呼び出される理由はありcleanますか? clean_fields私のプロジェクトでは、次の状況のように、最初に検証を行ってから検証を行うことができれば、より合理的です。

class MyModel(models.Model):
    status = models.IntegerField(blank=False, null=False)

    def clean(self):
        if not self.status:
            self.status = 0

でこの順序を変更しても問題はありませんfull_cleanか?

4

1 に答える 1

8

なぜ「より合理的」になるのでしょうか?その名前が示すように、clean_fieldsは各フィールドを個別にクリーニングするように設計されていますが、 の目的はcleanフィールドの相互作用を検証することだけです。たとえば、あるフィールドは、別のフィールドが設定されている場合にのみ空白にすることができます。このclean_fieldsメソッドは、これらの相互作用を実際に検証できることを確認するために最初に呼び出されます。フィールドに一般的なエラーがある場合、それらを組み合わせて検証しても意味がありません。

于 2012-06-26T21:21:46.187 に答える