如何解决来自客户端的请求进入数组,如何使用Django rest框架过滤器处理它
正如我在标题中提到的,客户端过滤器请求是从制表器数据表到其余框架后端的这种模式。
/?page=1&size=10&filters[0][field]=q&filters[0][type]=like&filters[0][value]=something
我已经尝试过这种方法,但是没有用
class MemberListSerializerView(generics.ListAPIView):
model = Membership
serializer_class = MemberSerializer
pagination_class = CustomPagination
def get_queryset(self):
queryset = Membership.objects.members()
query = self.request.query_params.get('filters[value][0]',None)
if query is not None:
queryset = queryset.filter(
Q(user__username__icontains=query) |
Q(user__first_name__icontains=query) |
Q(user__last_name__icontains=query)
)
return queryset
解决方法
您可以尝试遍历所有请求的get变量并提取数据
for key in request.GET:
print(key)
value = request.GET[key]
print(value)
,
Tabulator以这种方式发送ajax请求,因为它是在PHP请求中表示数组数据的标准方式。
如果您希望以不同的方式构造请求,则可以使用 ajaxURLGenerator 函数以您喜欢的任何方式构造请求参数:
var table = new Tabulator("#example-table",{
ajaxURLGenerator:function(url,config,params){
//url - the url from the ajaxURL property or setData function
//config - the request config object from the ajaxConfig property
//params - the params object from the ajaxParams property,this will also include any pagination,filter and sorting properties based on table setup
//return request url
return url + "?params=" + encodeURI(JSON.stringify(params)); //encode parameters as a json object
},});
有关详细信息,请查看Ajax Documentation
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。