Feature: Add new public user-api and user-profile card in front-end

This commit is contained in:
winkidney
2020-07-23 23:56:24 +08:00
parent 978c686c66
commit dbca765b6a
6 changed files with 192 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect, HttpResponseBadRequest, HttpResponse
from django.urls import reverse
from django.utils.functional import lazy
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import mixins, routers
from rest_framework.permissions import BasePermission
from rest_framework.renderers import JSONRenderer
@@ -20,6 +21,21 @@ def reverse_lazy(name=None, *args):
return lazy(reverse, str)(name, args=args)
class PublicUserViewSet(
mixins.RetrieveModelMixin,
mixins.ListModelMixin,
GenericViewSet,
):
serializer_class = UserSerializer
filter_backends = (DjangoFilterBackend, )
filter_fields = ("username", )
pagination_class = None
def get_queryset(self):
username = self.request.GET.get("username", "")
return User.objects.filter(username=username)
class UserViewSet(
mixins.RetrieveModelMixin,
mixins.ListModelMixin,
@@ -87,3 +103,4 @@ def logout_user(request):
drf_router = routers.DefaultRouter()
drf_router.register(r'users', UserViewSet, basename="user")
drf_router.register(r'public-users', PublicUserViewSet, basename="public-user")