add ordering & optimize serializer

This commit is contained in:
Kuroshini 2019-12-06 19:17:38 +03:00
parent b5a113c875
commit 8451ccf17e
2 changed files with 29 additions and 3 deletions

View File

@ -16,7 +16,24 @@ class RoleSerializer(serializers.ModelSerializer):
class BackUserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
fields = (
'id',
'last_login',
'is_superuser',
'username',
'last_name',
'first_name',
'is_active',
'date_joined',
'image_url',
'cropped_image_url',
'email',
'email_confirmed',
'unconfirmed_email',
'email_confirmed',
'newsletter',
'roles',
)
extra_kwargs = {
'password': {'write_only': True}
}

View File

@ -1,5 +1,6 @@
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import generics, permissions
from rest_framework.filters import OrderingFilter
from account import models
from account.models import User
@ -18,10 +19,10 @@ class UserRoleLstView(generics.ListCreateAPIView):
class UserLstView(generics.ListCreateAPIView):
"""User list create view."""
queryset = User.objects.all()
queryset = User.objects.prefetch_related('roles')
serializer_class = serializers.BackUserSerializer
permission_classes = (permissions.IsAdminUser,)
filter_backends = (DjangoFilterBackend,)
filter_backends = (DjangoFilterBackend, OrderingFilter)
filterset_fields = (
'email_confirmed',
'is_staff',
@ -29,6 +30,14 @@ class UserLstView(generics.ListCreateAPIView):
'is_superuser',
'roles',
)
ordering_fields = (
'email_confirmed',
'is_staff',
'is_active',
'is_superuser',
'roles',
'last_login'
)
class UserRUDView(generics.RetrieveUpdateDestroyAPIView):