Compare commits
No commits in common. "705dff193c3456cf017e7a070dd57927a6441d0a" and "f9584f6a0029e8bc65d2801a3122935fcd19eb24" have entirely different histories.
705dff193c
...
f9584f6a00
|
|
@ -320,7 +320,7 @@ def phone_exist(phone):
|
||||||
|
|
||||||
|
|
||||||
def user_exist(username):
|
def user_exist(username):
|
||||||
if User.objects.get_queryset(all=True).filter(username=username).exists():
|
if User.objects.filter(username=username).exists():
|
||||||
raise serializers.ValidationError(**USERNAME_EXIST)
|
raise serializers.ValidationError(**USERNAME_EXIST)
|
||||||
return username
|
return username
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -251,7 +251,6 @@ class ComplexQueryMixin:
|
||||||
queryset = self.get_queryset()
|
queryset = self.get_queryset()
|
||||||
querys = vdata.get('querys', [])
|
querys = vdata.get('querys', [])
|
||||||
annotate_field_list = vdata.get('annotate_field_list', [])
|
annotate_field_list = vdata.get('annotate_field_list', [])
|
||||||
distinct = vdata.get('distinct', True)
|
|
||||||
|
|
||||||
if not querys:
|
if not querys:
|
||||||
new_qs = queryset
|
new_qs = queryset
|
||||||
|
|
@ -275,11 +274,6 @@ class ComplexQueryMixin:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise ParseError(str(e))
|
raise ParseError(str(e))
|
||||||
|
|
||||||
# 反向关联(右到左)查询容易因 JOIN 膨胀产生重复行,这里按主键回查去重
|
|
||||||
if distinct:
|
|
||||||
pk_name = queryset.model._meta.pk.attname
|
|
||||||
new_qs = queryset.filter(**{f"{pk_name}__in": new_qs.values(pk_name)})
|
|
||||||
|
|
||||||
if annotate_field_list:
|
if annotate_field_list:
|
||||||
annotate_dict = getattr(self, "annotate_dict", {})
|
annotate_dict = getattr(self, "annotate_dict", {})
|
||||||
if annotate_dict:
|
if annotate_dict:
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,6 @@ class ComplexSerializer(serializers.Serializer):
|
||||||
page = serializers.IntegerField(min_value=0, required=False)
|
page = serializers.IntegerField(min_value=0, required=False)
|
||||||
page_size = serializers.IntegerField(min_value=1, required=False)
|
page_size = serializers.IntegerField(min_value=1, required=False)
|
||||||
ordering = serializers.CharField(required=False)
|
ordering = serializers.CharField(required=False)
|
||||||
distinct = serializers.BooleanField(required=False, default=True, label="是否按主键去重")
|
|
||||||
querys = serializers.ListField(child=QuerySerializer(
|
querys = serializers.ListField(child=QuerySerializer(
|
||||||
many=True), label="查询列表", required=False)
|
many=True), label="查询列表", required=False)
|
||||||
annotate_field_list = serializers.ListField(child=serializers.CharField(), label="RawSQL字段列表", required=False)
|
annotate_field_list = serializers.ListField(child=serializers.CharField(), label="RawSQL字段列表", required=False)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue