This commit is contained in:
Mikan
2025-05-19 17:22:00 +03:00
parent a0a337045b
commit d8545bb7cf
6 changed files with 83 additions and 3 deletions

22
users/serializers.py Normal file
View File

@@ -0,0 +1,22 @@
from rest_framework import serializers
from djoser.serializers import UserCreateSerializer
from .models import Account, Role
class RoleSerializer(serializers.ModelSerializer):
class Meta:
model = Role
fields = "__all__"
class AccountSerializer(UserCreateSerializer):
role = serializers.PrimaryKeyRelatedField(queryset=Role.objects.all(), required=False)
class Meta(UserCreateSerializer.Meta):
model = Account
fields = ["id", "login", "role", "is_staff", "is_active", "first_name", "last_name", "middle_name", "phone", "email"]
def create(self, validated_data):
user = super().create(validated_data)
user.set_password(validated_data["password"])
user.save()
return user

13
users/urls.py Normal file
View File

@@ -0,0 +1,13 @@
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import AccountViewSet, RoleViewSet
router = DefaultRouter()
router.register(r"users", AccountViewSet, basename="user")
router.register(r"roles", RoleViewSet, basename="role")
urlpatterns = [
path("", include(router.urls)),
path("auth/", include("djoser.urls")),
path("auth/", include("djoser.urls.jwt")),
]

View File

@@ -1,3 +1,15 @@
from django.shortcuts import render
from rest_framework import viewsets
from rest_framework.permissions import IsAuthenticated
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
from djoser.views import UserViewSet as DjoserUserViewSet
from .models import Account, Role
from .serializers import AccountSerializer, RoleSerializer
# Create your views here.
class AccountViewSet(DjoserUserViewSet):
queryset = Account.objects.all()
serializer_class = AccountSerializer
permission_classes = [IsAuthenticated]
class RoleViewSet(viewsets.ModelViewSet):
queryset = Role.objects.all()
serializer_class = RoleSerializer