Как получить доступ к актору уведомления django в удобном формате?

Я использую django-notifications (здесь code) для создания уведомлений для моего веб-приложения.

У меня проблема, когда я пытаюсь получить доступ к объекту actor, например, через Notification.object.get(id=1).actor, я получаю следующее исключение:

 ValueError: Field 'id' expected a number but got '<property object at 0x7fc171cc5400>'.

что затем вызывает исключение:

ValueError: invalid literal for int() with base 10: '<property object at 0x7fc171cc5400>'

Вот код для моего сигнала:

@receiver(post_save, sender=Request)
def notify_owner_of_request(sender, instance, created, **kwargs):
    if created:
        notify.send(
            sender=sender,
            actor = instance.user,
            verb = "requested to join ",
            recipient = instance.owner,
            action_object = instance,
            target = instance.club,
        )

Независимо от того, какой объект или значение я делаю актором, всегда возникает одна и та же ошибка.

Отмечу, что я могу получить доступ к action_object, target, verb и recipient совершенно нормально, и уведомление действительно работает (одно сделано и правильно).

Модель уведомления из notification-hq имеет следующие атрибуты:

 actor_content_type = models.ForeignKey(ContentType, related_name='notify_actor', on_delete=models.CASCADE)
actor_object_id = models.CharField(max_length=255)
actor = GenericForeignKey('actor_content_type', 'actor_object_id')

обращение к actor_content_type дает мне следующее:

<ContentType: clubs | request>

хотя он должен быть типа User

и обращение к actor_object_id дает мне следующее:

'<property object at 0x7fc171cc5400>'

Мне нужно получить доступ к актеру, чтобы я мог проверить, что это правильный пользователь и что он правильно отображается во внешней части уведомлений.

Любая помощь будет очень признательна!

Вернуться на верх