django 逗号分隔的参数去查询逗号分隔的数据

2021-05-08  本文已影响0人  HC2

一、
问题:数据库中表x_table存在这样的数据


image.png

二、
1、当我查询 “经典” 时期望查询出 field='经典,文学'的数据
2、当我查询 “经典,文学” 时期望查询出 field='经典,文学'的数据
3、当我查询 “现代” 时期望查询出 field='现代' 或者 field='现代,网络'的数据
查了下资料,这种不规则的查询,没有找到django有封装特定的查询方法

想到 了 django的 extra 模型来进行查询

@require_http_methods(["GET"])
def get_book(request):

    field = request.GET.get('field')

    tk = Book.objects.none()  # Return an empty QuerySet
    for i in field.split(','):
        om = Book.objects.extra(where=['FIND_IN_SET("{}", field)'.format(i)])
        tk = tk | om

    result = {"resCode": '0', "message": 'success', "data": json.loads(serializers.serialize("json", tk))}

    return JsonResponse(result)
image.png image.png
上一篇下一篇

猜你喜欢

热点阅读