python - 如果物理服务器的 id 在给定的参数中,我如何过滤它?
问题描述
如果物理服务器的 id 在给定的参数中,我如何过滤它?
class PhysicalServerListAPIView(ListAPIView):
serializer_class = PhysicalServerListSerializer
permission_classes = [IsSuperAdminOrObjEqualsSelf]
pagination_class = CommonPagination
def get_queryset(self):
query_params = self.request.query_params
qs = PhysicalServer.objects.filter(user=self.request.user)
id_list = get_param_from_query_params(query_params, 'id_list')
if id_list:
qs = qs.filter(Q(id__in=id_list)) # I want to filter if the physicalserver id is in the `id_list`
return qs
方法的代码:
def get_param_from_query_params(query_params, param):
"""
:param query_params:
:param param:
:return:
"""
param_temp = None
try:
mutable = query_params._mutable
query_params._mutable = True
param_list = query_params.pop(param)
param_temp = param_list[0] if (isinstance(param_list, list) and len(param_list) > 0) else ''
query_params._mutable = mutable
except Exception as e:
pass
return param_temp
如果物理服务器的 id 在给定的参数中,我如何过滤它?
编辑-1
我在 url 表单中的 id_list 是:
id_list[]=24&id_list[]=25&id_list[]=27
解决方案
get id_list 方法应该是:
id_list = query_params.getlist('id_list')
这就是答案。
推荐阅读
- android - 如何在android api 27上从不布局InDisplayCutoutMode?
- python - 有没有办法将所有键盘键绑定到 tkinter.Text
- python - 我想知道这个脚本是否不危险 python discord bot
- interpolation - 平滑过渡的线性插值 - GDScript
- python-3.x - 如何托管也运行 python 脚本的 Laravel 项目
- python - 如何从当前函数中的另一个函数访问字典
- elasticsearch - Logstash 错误:无法发布事件,原因是:write tcp YY.YY.YY.YY:40912->XX.XX.XX.XX:5044: write: connection reset by peer
- php - 如何在php中打印多维数组foreach
- javascript - 从 DOM 中的深层子项中选择整个容器 div
- android-studio - 在 Android Studio 上看不到操作工具栏