'deleted',
'books',
]
- read_only_fields = ['favorites']
+ read_only_fields = [
+ 'favorites',
+ 'slug',
+ ]
extra_kwargs = {
'slug': {
'required': False
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
)
else:
return get_object_or_404(
- models.UserList,
+ models.UserList.all_objects.all(),
slug=self.kwargs['slug'],
user=self.request.user)
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