1

最近、プロジェクトの API を で開始しましたdjango-tastypie。実際には、投稿リクエストで一部のフィールド要件を除外したいと考えています。

私のモデルには 4 つのフィールドがあり、それらすべてがモデルで必要として定義されていると仮定しますdjango。しかし、API リクエストから 2 つを受け取りたいのですが、他の 2 つが関数によって満たされます。

tastypieでは、これら 2 つのフィールドだけを受け取り、他のフィールドをスキップするよう に に指示するにはどうすればよいでしょうか?

4

1 に答える 1

0

同じフィールドを除外したい場合は、リソースのメタ クラスで定義することで実行できます。次に例を示します。

class MyResource(ModelResource):
     class Meta:
         excludes = (field1, field2)

これらのフィールドは、このリソースに対して毎回除外されます。

しかし、ポストでのみ異なるフィールドを取得したい場合、私がやっている方法は、 dehydrate メソッドをオーバーライドすることです:

def dehydrate(self, bundle):
     if bundle.request.META['REQUEST_METHOD'] == 'POST':
         bundle.data = dict(my_field1=bundle.obj.my_func1(),
                            my_field2=bundle.obj.my_func2()
                            )
     return bundle
于 2013-04-20T23:47:03.407 に答える