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:
@ -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)
|
||||
|
||||
@ -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()})
|
||||
|
||||
Reference in New Issue
Block a user