最近我为我的项目启动了一个 API django-tastypie
。实际上我想在发布请求中排除一些字段要求。
假设我的模型有四个字段,并且它们都定义为django
模型中的要求。但我想从 API 请求中接收其中两个,另外两个将由我的函数填充。
那么,我怎么能告诉tastypie
只接收这两个字段并跳过其他字段呢?
如果你想排除相同的字段,你可以通过在资源的元类中定义它来做到这一点,例如:
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