Files
cdtestplant_v1/utils/smallTools/interfaceTools.py
2025-04-29 18:09:00 +08:00

19 lines
813 B
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""该文件主要是小工具,简化接口处理函数写的代码太多"""
from ninja import Schema
from django.db.models import QuerySet
def conditionNoneToBlank(condition: Schema):
"""将BaseModel/Schema对象中None变为空字符串"""
for attr, value in condition.__dict__.items():
if getattr(condition, attr) is None:
setattr(condition, attr, '')
def model_retrieve(condition: Schema, qs: QuerySet, exclude_field) -> QuerySet:
"""该函数合并上面功能传入qs以及排除字段全部添加__icontains进行查询"""
conditionNoneToBlank(condition)
search_obj = {}
for k, v in condition.dict(exclude_none=True).items():
if k not in exclude_field:
search_obj["".join([k, "__icontains"])] = v
return qs.filter(**search_obj)