Django-уведомления сериализуют целевой остальной фреймворк - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь добавить Django-уведомления в мой проект drf.При попадании в конечную точку я получаю ответ:

[
    {
        "recipient": {
            "id": 274,
            "username": "harry",
            "first_name": "Harry",
            "last_name": "Moreno"
        },
        "unread": true,
        "target": null,
        "verb": "invite approved"
    }
]

serializers.py

class GenericNotificationRelatedField(serializers.RelatedField):                                                          
    User = get_user_model()                                                                                               

    def to_representation(self, value):                                                                                   
        if isinstance(value, Invite):                                                                                     
            serializer = InviteSerializer(value)                                                                          
        if isinstance(value, User):                                                                                       
            serializer = UserSerializer(value)                                                                        
        return serializer.data                                                                                            


class NotificationSerializer(serializers.Serializer):                                                                     
    recipient = UserSerializer(read_only=True)                                                                            
    unread = serializers.BooleanField(read_only=True)                                                                     
    target = GenericNotificationRelatedField(read_only=True)  

Как сделать цель ненулевой?

1 Ответ

0 голосов
/ 15 июня 2019

Оказывается, что цель является нулевой, потому что именно так я создал уведомление в модели

notify.send(user, recipient=user, verb='you reached level 10')

, если я хотел не нулевую цель, я должен указать такую, как

notify.send(user, recipient=user, target=user, verb='you reached level 10')
...