Car*_*son 9 python django tastypie
我希望特定django-tastypie模型资源在列出对象时只有一个字段子集,在显示细节时只有所有字段.这可能吗?
ast*_*vic 14
您必须在实际的ModelResource中指定所有字段,然后重写该get_list方法以仅过滤掉您想要显示的字段.请参阅get_liston 的内部实现Resource以了解如何覆盖它.
但是,请注意,这仅适用于GET请求,如果授权限制允许,您仍应能够对包含所有字段的资源进行POST/PUT/PATCH.
在坚果shell中,您希望在对返回的所有ORM对象调用full_dehydrate之前对内部字段列表进行热修补obj_get_list.
或者,你可以让完整的脱水机制发生,如果你不关心挤出尽可能多的速度,就在它结束时删除你不想显示的字段.当然,只有在get_list调用的结果调用URL时才需要这样做.有一种方便的方法alter_list_data_to_serialize(request, to_be_serialized).
做就是了:
class SomeResource(Resource):
class Meta(...):
...
field_list_to_remove = [ 'field1', 'field2' ]
...
def alter_list_data_to_serialize(request, to_be_serialized):
for obj in to_be_serialized['objects']:
for field_name in self._meta.field_list_to_remove:
del obj.data[field_name]
return to_be_serialized
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5417 次 |
| 最近记录: |