X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/d2a9ebf1eae1ee5fa8a09a7dfea76995274f7716..0e7f51f3c96d970342838a1d56e4a660cd2e51ba:/src/social/api/views.py diff --git a/src/social/api/views.py b/src/social/api/views.py index 9d8fd4a59..f89de2704 100644 --- a/src/social/api/views.py +++ b/src/social/api/views.py @@ -126,7 +126,10 @@ class UserListSerializer(serializers.ModelSerializer): 'deleted', 'books', ] - read_only_fields = ['favorites'] + read_only_fields = [ + 'favorites', + 'slug', + ] extra_kwargs = { 'slug': { 'required': False @@ -139,17 +142,21 @@ class UserListSerializer(serializers.ModelSerializer): validated_data['name'], create=True ) - instance.userlistitem_set.all().delete() - for book in validated_data['books']: - instance.append(book) + if 'books' in validated_data: + instance.userlistitem_set.all().delete() + for book in validated_data['books']: + instance.append(book) return instance def update(self, instance, validated_data): - instance.userlistitem_set.all().delete() - for book in validated_data['books']: - instance.append(instance) + super().update(instance, validated_data) + if 'books' in validated_data: + instance.userlistitem_set.all().delete() + for book in validated_data['books']: + instance.append(instance) return instance + class UserListBooksSerializer(UserListSerializer): class Meta: model = models.UserList @@ -232,7 +239,7 @@ class ListView(RetrieveUpdateDestroyAPIView): ) else: return get_object_or_404( - models.UserList, + models.UserList.all_objects.all(), slug=self.kwargs['slug'], user=self.request.user) @@ -471,7 +478,7 @@ class UserListItemSyncView(SyncView): sync_user_field = 'list__user' def get_queryset_for_ts(self, timestamp): - qs = self.model.objects.filter( + qs = self.model.all_objects.filter( updated_at__gt=timestamp, **{ self.sync_user_field: self.request.user