7

Django モデルの save() メソッドをオーバーライドしているので、オブジェクトに対して追加の健全性チェックを行うことができます。(save() はこれを行う正しい場所ですか?)

フィクスチャ/initial_fixtures.yaml オブジェクトで save() メソッドが呼び出されているようには見えません。フィクスチャの健全性をチェックするにはどうすればよいですか?

4

3 に答える 3

10

Django 1.5 以降、 save() は呼び出されません:

フィクスチャ ファイルが処理されると、データはそのままデータベースに保存されます。モデル定義の save() メソッドは呼び出されません。インスタンスにはモデルにローカルな属性しか含まれていないため、pre_save または post_save シグナルは raw=True で呼び出されます。

https://docs.djangoproject.com/en/1.9/ref/django-admin/

于 2013-07-25T12:58:12.860 に答える
2

この.save()メソッドは、https://code.djangoproject.com/browser/django/tags/releases/1.3.1/django/core/management/commands/loaddata.py?rev=17029#L174に見られるように、フィクスチャのロード中に呼び出されます。

別のバージョンの DJ を使用している場合は、それを確認できますが、古いバージョンでも呼び出されていると確信しています。

オブジェクトのsave()メソッドが呼び出されているかどうかをどのように確認していますか?

でこれを行うことについて.save()、健全性チェックが自明でない場合、それはあまり良い考えではないと思います。

于 2011-10-24T19:05:39.323 に答える
0

あなたのフィクスチャは、疑わしい入力ではなく、適切なデータであると想定されているため、健全性をチェックする必要がある適切なケースはわかりません。

一度だけの初期検証を行う必要がある場合は、管理者またはアプリ内の何かを介してデータベースにデータを追加し、それをフィクスチャとしてエクスポートできます。

于 2011-10-24T18:20:34.770 に答える