排除tastypie后数据的某些字段(exclude some fields in tastypie

2019-10-18 00:16发布

最近,我开始为我的项目的API django-tastypie 。 其实我想排除请求后场的一些要求。

假设我的模型有四个字段,并要求在所有这些定义django模型。 但我想收到他们两个从API请求,2人将我的功能来填补。

所以,我怎么能告诉tastypie只接收这两个领域,并跳过其他人呢?

Answer 1:

如果要排除相同的字段,你可以做到这一点通过在元类资源的定义,例如:

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

而这些领域将被排除该资源每次。

但是,如果你想只在后期得到不同的领域如何,我这样做的方式是通过重写脱水方法:

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


文章来源: exclude some fields in tastypie post data