diff --git a/account/views/admin.py b/account/views/admin.py index eaf4f4d..75b4c97 100644 --- a/account/views/admin.py +++ b/account/views/admin.py @@ -3,7 +3,7 @@ import re import xlsxwriter from django.db import transaction, IntegrityError -from django.db.models import Q +from django.db.models import Q, F from django.http import HttpResponse from django.contrib.auth.hashers import make_password from django.utils.crypto import get_random_string @@ -154,7 +154,19 @@ class UserAdminAPI(APIView): return self.error("User does not exist") return self.success(UserAdminSerializer(user).data) - user = User.objects.all().order_by("-create_time") + # 获取排序参数 + order_by = request.GET.get("order_by", "") + + # 根据排序参数设置排序规则 + if order_by == "-last_login": + # 最近登录,将 None 值放在最后 + user = User.objects.all().order_by(F("last_login").desc(nulls_last=True)) + elif order_by == "last_login": + # 最早登录,将 None 值放在最后 + user = User.objects.all().order_by(F("last_login").asc(nulls_last=True)) + else: + # 默认按创建时间倒序 + user = User.objects.all().order_by("-create_time") type = request.GET.get("type", "")