Я пытаюсь следовать документам gettream для django с остальными. https://github.com/GetStream/stream-django
Вот минимальный API DRF, клонированный из учебника DRF https://github.com/morenoh149/django-rest-framework-getstream
Я получаю ошибку
TypeError at /notifications/
Object of type Feed is not JSON serializable
при открытии /notifications/
в браузере. Как написать конечную точку для отображения уведомлений пользователя?
views.py
class NotificationViewSet(viewsets.ViewSet):
"""
This viewset returns a notifications feed for the logged in user.
The feed contains events for when a relevant snippet is created.
"""
serializer_class = NotificationSerializer
def list(self, request):
user_id = request.user.id
notification_feed = feed_manager.get_notification_feed(user_id)
return Response(notification_feed)
serializers.py
class ActivitySerializer(serializers.Serializer):
id = serializers.UUIDField()
foreign_id = serializers.CharField()
verb = serializers.CharField()
time = serializers.DateTimeField()
def __init__(self, *args, **kwargs):
object_serializer = kwargs.pop("object_serializer", None)
actor_serializer = kwargs.pop("actor_serializer", None)
super().__init__(self, *args, **kwargs)
if object_serializer:
self.fields["object"] = object_serializer()
else:
self.fields["object"] = serializers.CharField()
if actor_serializer:
self.fields["actor"] = actor_serializer()
else:
self.fields["actor"] = serializers.CharField()
class AggregatedSerializer(ActivitySerializer):
group = serializers.CharField()
activities = ActivitySerializer(many=True)
class NotificationSerializer(AggregatedSerializer):
is_seen = serializers.BooleanField()
is_read = serializers.BooleanField()