From 1d0e88bf91172803f67bc70415271e2a47abe41d Mon Sep 17 00:00:00 2001 From: Ivan Artamonov Date: Mon, 11 Nov 2024 14:07:05 +0300 Subject: [PATCH] Make test API for attendants --- serializers.py | 13 ++++++++++++- urls.py | 14 ++++++++++++++ views.py | 8 ++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 urls.py create mode 100644 views.py diff --git a/serializers.py b/serializers.py index e0b660a..6e48607 100644 --- a/serializers.py +++ b/serializers.py @@ -2,7 +2,18 @@ from .models import Attendant +# This is a serializer for the nfc_id field +class BinaryFieldSerializer(serializers.Field): + def to_representation(self, value): + return value.hex() + + def to_internal_value(self, data): + return bytes.fromhex(data) + + class AttendantSerializer(serializers.HyperlinkedModelSerializer): + nfc_id = BinaryFieldSerializer() + class Meta: model = Attendant - fields = '__all__' + fields = "__all__" diff --git a/urls.py b/urls.py new file mode 100644 index 0000000..8e6ef2b --- /dev/null +++ b/urls.py @@ -0,0 +1,14 @@ +from django.contrib import admin +from django.urls import path, include +from . import views +from rest_framework import routers + + +# router for attendant urls +router = routers.DefaultRouter() +router.register(r"attendants", views.AttendantViewSet) + + +urlpatterns = [ + path("", include(router.urls)), +] diff --git a/views.py b/views.py new file mode 100644 index 0000000..08c36fc --- /dev/null +++ b/views.py @@ -0,0 +1,8 @@ +from rest_framework import viewsets +from database.serializers import AttendantSerializer +from database.models import Attendant + + +class AttendantViewSet(viewsets.ModelViewSet): + queryset = Attendant.objects.all() + serializer_class = AttendantSerializer