1

Tastypie リソースで save_m2m が必要な理由についての私の理解はまだ明確ではありません。POST で、1 つのモデルの作成に関連するデータのみを投稿し、m2m オブジェクトに関連するものは何も送信しない場合でも、save_m2m を実行する必要がありますか? なぜそれが必要なのですか?save_m2m をオーバーライドして何もしないとどうなりますか? 正常に動作しているようで、リソースが作成されました。これがもたらす可能性のある隠れた影響についてはわかりません。コメントをお願いします。

4

1 に答える 1

3

マークされたフィールドがない場合is_m2m=True、メソッドは実際には何もしません。save_m2m の Tastypie docstring から:

"""
Handles the saving of related M2M data.

Due to the way Django works, the M2M data must be handled after the
main instance, which is why this isn't a part of the main ``save`` bits.

Currently slightly inefficient in that it will clear out the whole
relation and recreate the related data as needed.
"""

Tastypie のリソースsave_m2mメソッド内で is_m2m が True に設定されているフィールドをチェックします。何も見つからない場合は何もしません。そのため、リソース クラスに m2m がなく、他のリソースがそれを継承しない場合は、save_m2m何もしない方法。

実際には、tastypie よりも 1 ループ先になります (わずかなスピードアップ woohoo! ;))。

于 2012-09-05T14:23:27.397 に答える