Fix ImproperlyConfigured for paper-detail in scrobbles API

Same issue as drink-detail: Paper model had a template URL but no API
ViewSet, causing HyperlinkedModelSerializer to fail.

Fix:
- Add PaperSerializer and PaperViewSet to books/api/
- Register PaperViewSet as 'papers' in the DRF router
This commit is contained in:
2026-07-23 20:28:35 -04:00
parent 428d84d3bf
commit dcbb4034d0
3 changed files with 15 additions and 2 deletions

View File

@ -1,4 +1,4 @@
from books.models import Author, Book
from books.models import Author, Book, Paper
from rest_framework import serializers
@ -12,3 +12,9 @@ class BookSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Book
fields = "__all__"
class PaperSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Paper
fields = "__all__"

View File

@ -14,3 +14,9 @@ class BookViewSet(viewsets.ModelViewSet):
queryset = models.Book.objects.all().order_by("-created")
serializer_class = serializers.BookSerializer
permission_classes = [permissions.IsAuthenticated]
class PaperViewSet(viewsets.ModelViewSet):
queryset = models.Paper.objects.all().order_by("-created")
serializer_class = serializers.PaperSerializer
permission_classes = [permissions.IsAuthenticated]

View File

@ -18,7 +18,7 @@ from vrobbler.apps.boardgames.api.views import (
BoardGameViewSet,
)
from vrobbler.apps.books import urls as book_urls
from vrobbler.apps.books.api.views import AuthorViewSet, BookViewSet
from vrobbler.apps.books.api.views import AuthorViewSet, BookViewSet, PaperViewSet
from vrobbler.apps.bricksets import urls as bricksets_urls
from vrobbler.apps.bricksets.api.views import BrickSetViewSet
from vrobbler.apps.charts import urls as charts_urls
@ -113,6 +113,7 @@ router.register(r"channels", ChannelViewSet)
router.register(r"videos", VideoViewSet)
router.register(r"authors", AuthorViewSet)
router.register(r"books", BookViewSet)
router.register(r"papers", PaperViewSet)
router.register(r"leagues", LeagueViewSet)
router.register(r"sports", SportViewSet)
router.register(r"seasons", SeasonViewSet)