Django Notifications

JunePyo Suh·2020년 9월 22일
0
post-custom-banner

Often times we need to implement a social networking service-like notification system. django-notifications-hq can facilitate your implementation in such cases.

github link
documentation

Serializing the django-notifications Model

class GenericNotificationRelatedField(serializers.RelatedField):

    def to_representation(self, value):
        if isinstance(value, Foo):
            serializer = FooSerializer(value)
        if isinstance(value, Bar):
            serializer = BarSerializer(value)

        return serializer.data


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

Inheriting the AbstractNotification model for custom fields

from django.db import models
from notifications.base.models import AbstractNotification


class Notification(AbstractNotification):
    # custom field example
    category = models.ForeignKey('myapp.Category',
                                 on_delete=models.CASCADE)

    class Meta(AbstractNotification.Meta):
        abstract = False
post-custom-banner

0개의 댓글