Django如何实现如下的参数为空的动态查询

需要实现的逻辑

任意输入手机号或身份证后六位其中一个,则返回其中一个结果。
同时输入手机号和身份证后六位两者,则返回与结果。

想问下这种逻辑该如何处理呢?

阅读 4.3k
2 个回答
mobile = request.GET.get('mobile', None)
id_no = request.GET.get('id_no', None)

data_list = XXX.objects.all()
if mobile:
    data_list = data_list.filter(mobile=mobile)
if id_no:
    data_list = data_list.filter(id_no=id_no)
filter = {}
if mobile:
    filter['mobile'] = mobile
if card:
    filter['card'] = card
if status:
    filter['status'] = status

TableModel.objects.filter(**filter)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题