2024-09-30 20:19:17 发布
网友
有没有一种方法可以强制api url中的字段是full?在
full
例如,现在可以通过执行以下操作来选择字段是否已满:
class FooResource(ModelResource): foo = fields.ForeignKey(FooFooResource, 'foo', full=True)
是否可以通过执行以下操作来覆盖url中的full
或者
example.com/api/foo/?foo__full=true
这是使其工作的代码:
class RelatedResource(ModelResource): user = fields.ToOneField(UserResource, 'user') class Meta: queryset = Related.objects.all() resource_name = 'related' class UserResource(ModelResource): related = fields.ToOneField(RelatedResource, 'related', full=False) # Default is false class Meta: queryset = User.objects.all() resource_name = 'user' def dehydrate(self, bundle): show_full = bundle.request.GET.get('full', "false").lower() == "true" if show_full: old_full = self.related.full self.related.full = True bundle.data['related'] = self.related.dehydrate(bundle) self.related.full = old_full return bundle
我创建了一个要点来进行更改:https://gist.github.com/2897326
以下是Github的答案:
There isn't a built-in way to do this right now. It's possible to do in dehydrate, checking if bundle.request.GET.get('foo__full', True) == False then just swapping out the data in bundle.data. Takes a little bit of code though.
if bundle.request.GET.get('foo__full', True) == False
bundle.data
这是使其工作的代码:
我创建了一个要点来进行更改:https://gist.github.com/2897326
以下是Github的答案:
相关问题 更多 >
编程相关推荐