3

私の質問と似たような質問がいくつかありましたが、どれも私の特定の定式化をカバーしていないようでした. これをカバーするものを見逃した場合はお詫び申し上げます。

私はForeignKeyを持つモデルを表すtastypie ModelResourceを持っています。そのタイプの新しいリソースを作成できるようにしたいのですが、外部キーのモデルを API に公開したくありません。

そのためのリソースを追加しても問題ありませんが、サイト コードの外部で外部キーを読み書きできるようにしたくありません。ただし、これまでに試みたことから、tastypie は、対応する外部キー モデルにも作成可能なリソースがある場合にのみ、このタイプの外部キーを処理できるようです。既存の外部キー オブジェクトを参照するモデルを作成できるようにしたいだけで、新しいオブジェクトの作成は許可しません。

これはtastypieでできることですか?もしそうなら、これを達成するために私は何をする必要がありますか? そうでない場合、何らかの回避策/妥協点はありますか?

4

1 に答える 1

3

外部キーを API に表示したくない場合は、リソースにフィールドを作成しないでください。作成/更新時に何らかの値を指定する必要がある場合は、このリソースの obj_create/obj_update Tastypie メソッドを上書きできます。例えば:

def obj_create(self, bundle, request=None, **kwargs):
    obj = super(YourResource, self).obj_create(bundle, request, **kwargs)
    obj.yourforeighnkey = somevalue
    obj.save()
    return obj   
于 2013-03-13T16:04:22.437 に答える