mirror of
https://github.com/i701/sarlink-portal-api.git
synced 2025-06-27 22:03:58 +00:00
Refactor User model: update mobile field to allow null values, enforce unique id_card, and implement user filtering API endpoint
This commit is contained in:
23
api/views.py
23
api/views.py
@ -20,6 +20,7 @@ from django_filters.rest_framework import DjangoFilterBackend
|
||||
import re
|
||||
from typing import cast, Dict, Any
|
||||
from django.core.mail import send_mail
|
||||
from django.db.models import Q
|
||||
|
||||
# local apps import
|
||||
from .serializers import (
|
||||
@ -196,6 +197,28 @@ class ListUserView(StaffEditorPermissionMixin, generics.ListAPIView):
|
||||
queryset = User.objects.all()
|
||||
|
||||
|
||||
@api_view(["GET"])
|
||||
def filter_user(request):
|
||||
id_card = request.GET.get("id_card", "").strip() or None
|
||||
mobile = request.GET.get("mobile", "").strip() or None
|
||||
|
||||
if not id_card and not mobile:
|
||||
return Response({"ok": False})
|
||||
|
||||
filters = Q()
|
||||
if id_card is not None:
|
||||
filters |= Q(id_card=id_card)
|
||||
if mobile is not None:
|
||||
filters |= Q(mobile=mobile)
|
||||
|
||||
user = User.objects.filter(filters).first()
|
||||
|
||||
print(f"Querying with filters: {filters}")
|
||||
print(f"Found user: {user}")
|
||||
|
||||
return Response({"ok": True if user else False})
|
||||
|
||||
|
||||
class ListUserByIDCardView(generics.ListAPIView):
|
||||
# Create user API view
|
||||
permission_classes = (permissions.AllowAny,)
|
||||
|
Reference in New Issue
Block a user