Added viewsets for shelves

This commit is contained in:
maciejrusek
2026-03-10 22:52:39 +01:00
parent 624ef3ca16
commit 271337afcb
7 changed files with 52 additions and 2 deletions

View File

@@ -0,0 +1,18 @@
from rest_framework import serializers
from apps.shelves.models import Shelf
from apps.user.serializers import UserSerializer
from apps.user.models import User
class ShelfSerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=True)
class Meta:
model = Shelf
fields = ["id", "name", "user"]
read_only_fields = ["id"]
def create(self, validated_data):
# Pobieramy user_id z tokena
return super().create(validated_data)

View File

@@ -0,0 +1,9 @@
from rest_framework.routers import DefaultRouter
from apps.shelves.views import ShelvesViewSet
urlpatterns = []
router = DefaultRouter()
router.register("", viewset=ShelvesViewSet)
urlpatterns += router.urls

View File

@@ -1,3 +1,9 @@
from django.shortcuts import render from django.shortcuts import render
# Create your views here. from apps.shelves.models import Shelf
from apps.shelves.serializers import ShelfSerializer
from rest_framework import viewsets
class ShelvesViewSet(viewsets.ModelViewSet):
queryset = Shelf.objects.select_related("user")
serializer_class = ShelfSerializer

5
backend/apps/urls.py Normal file
View File

@@ -0,0 +1,5 @@
from django.urls import include, path
urlpatterns = [
path("shelves", include("apps.shelves.urls"))
]

View File

@@ -0,0 +1,9 @@
from rest_framework import serializers
from apps.user.models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'

View File

@@ -24,6 +24,8 @@ INSTALLED_APPS = [
"django.contrib.sessions", "django.contrib.sessions",
"django.contrib.messages", "django.contrib.messages",
"django.contrib.staticfiles", "django.contrib.staticfiles",
"rest_framework",
"django_filters",
] ]
MIDDLEWARE = [ MIDDLEWARE = [

View File

@@ -1,6 +1,7 @@
from django.contrib import admin from django.contrib import admin
from django.urls import path from django.urls import path, include
urlpatterns = [ urlpatterns = [
path("admin/", admin.site.urls), path("admin/", admin.site.urls),
path("api/", include("apps.urls"))
] ]