Switch scrobble API from UUID to pk lookup

The ScrobbleViewSet was using lookup_field="uuid" which caused
API detail views to fail for scrobbles with NULL UUIDs. Rather
than backfilling all NULL UUIDs, switch to pk lookup which is
always populated.

Changes:
- Remove lookup_field="uuid" from ScrobbleViewSet (defaults to pk)
- Remove extra_kwargs from ScrobbleSerializer (URL now uses pk)
- Update regenerate_share_token action signature to use **kwargs
This commit is contained in:
2026-07-23 21:35:30 -04:00
parent 7e222c9a8a
commit b0d3029541
2 changed files with 1 additions and 5 deletions

View File

@ -20,9 +20,6 @@ class ScrobbleSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Scrobble
fields = "__all__"
extra_kwargs = {
"url": {"view_name": "scrobble-detail", "lookup_field": "uuid"},
}
def update(self, instance, validated_data):
note = validated_data.pop("note", None)

View File

@ -23,13 +23,12 @@ class ScrobbleViewSet(viewsets.ModelViewSet):
queryset = Scrobble.objects.all().order_by("-timestamp")
serializer_class = ScrobbleSerializer
permission_classes = [permissions.IsAuthenticated]
lookup_field = "uuid"
def get_queryset(self):
return super().get_queryset().filter(user=self.request.user)
@action(detail=True, methods=["post"])
def regenerate_share_token(self, request, uuid=None):
def regenerate_share_token(self, request, **kwargs):
scrobble = self.get_object()
scrobble.regenerate_share_token()
return Response({"share_url": scrobble.get_share_url()})