filters = {"del_flag": 0}
if params.get("start_time", ""):
filters.update({"create_datetime__gte": params.get("start_time", "")})
if params.get("end_time", ""):
filters.update({"create_datetime__lte": params.get("end_time", "")})
offset = (int(page) - 1) * int(num)
num = offset + int(num)
try:
if int(cur_user.id) in [1,2] or cur_user.username in ["admin", "superadmin"]:
querys = XXXX.objects.filter(**filters).all()[offset:int(num)]
total = XXXX.objects.filter(**filters).count()
else:
sseat = YYYYY(cur_user.id)
srole = YYYYY2(cur_user.id)
if len(sseat["uid"]) > 0 and len(srole["uid"]) > 0:
# Q(see_by_seat=1)&Q(user_ids__in=sseat["uid"])
# Q(see_by_role=1)&Q(user_ids__in=srole["uid"])
tmp = (Q(Q(see_by_seat=1)&Q(user_ids__in=sseat["uid"]))|Q(Q(see_by_role=1)&Q(user_ids__in=srole["uid"])))
querys = XXXX.objects.filter(**filters).filter(tmp).all()[offset:int(num)]
total = XXXX.objects.filter(**filters).filter(tmp).count()
#print(querys.query)
elif len(sseat["uid"]) > 0 and len(srole["uid"]) == 0:
filters.update({"see_by_seat": 1})
filters.update({"user_ids__in": sseat["uid"]})
querys = XXXX.objects.filter(**filters).all()[offset:int(num)]
total = XXXX.objects.filter(**filters).count()
#print(querys.query)
elif len(sseat["uid"]) == 0 and len(srole["uid"]) > 0:
filters.update({"see_by_role": 1})
filters.update({"user_ids__in": srole["uid"]})
querys = XXXX.objects.filter(**filters).all()[offset:int(num)]
total = XXXX.objects.filter(**filters).count()
#print(querys.query)
else:
filters.update({"user_ids__in": tuple([cur_user.id])})
querys = XXXX.objects.filter(**filters).all()[offset:int(num)]
total = XXXX.objects.filter(**filters).count()
#print(querys.query)
django框架中查询数据(与、或关系和其他条件混用)
最新推荐文章于 2024-04-29 10:00:53 发布