Как исправить send_messasge() отсутствует 1 необходимый позиционный аргумент: 'message'

В настоящее время я работаю над функцией уведомления в Django. Я могу запустить созданный код на localhost, серверах разработки, но когда я развернул тот же код на рабочем сервере, он выдает следующую ошибку

send_messasge() missing 1 required positional argument: 'message'

Ниже приведен мой model.py код.

class All_Device_Notification(models.Model):
    title = models.TextField(default="")
    description = models.TextField(default="")
    link = models.TextField(default="")

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        filtered_users = User.objects.all()
        devices = FCMDevice.objects.filter(user__in=list(filtered_users))
        devices.send_message(title=self.title, body=self.description, click_action=self.link)
        super(All_Device_Notification, self).save(*args, **kwargs)

Здесь я не могу понять, что если я компилирую код на localhost или сервере разработки, то он работает хорошо, но почему я сталкиваюсь с ошибкой на рабочем сервере?

ниже приведен мой файл urls.py

    url(r'^devices?$', FCMDeviceAuthorizedViewSet.as_view({'post': 'create'}),name='create_fcm_device'),

Вы используете fcm-django < 1 на сервере разработки, но последнюю версию на рабочем сервере.

Устранение проблемы на рабочем сервере заключается в ограничении версии в файле требований.

requirements.txt:

# fcm-django
fcm-django < 1

Возможно, вы захотите рассмотреть Миграцию на v1.0.

Чтобы установить последнюю версию на сервер разработки, запустите pip install с флагом upgrade:

pip install -U fcm-django

Чтобы перейти на более низкую версию:

pip install 'fcm-django<1'

Использование в fcm-django < 1: https://fcm-django.readthedocs.io/en/archive-pyfcm/

devices.send_message(title=self.title, body=self.description, click_action=self.link)

Используется в последней версии fcm-django: https://fcm-django.readthedocs.io/en/latest/

from firebase_admin.messaging import Message, Notification

devices.send_message(
    Message(
        notification=Notification(title=self.title, body=self.description),
        android=AndroidNotification(click_action=self.link),
        apns=APNSConfig(payload=APNSPayload(aps=Aps(category=self.link))),
    )
)

Вы используете fcm-django < 1 на сервере разработки, но последнюю версию на рабочем сервере.

Устранение проблемы на рабочем сервере заключается в ограничении версии в файле требований.

requirements.txt:

# fcm-django
fcm-django < 1

Возможно, вы захотите рассмотреть Миграцию на v1.0.

Чтобы установить последнюю версию на сервер разработки, запустите pip install с флагом upgrade:

pip install -U fcm-django

Чтобы перейти на более низкую версию:

pip install 'fcm-django<1'

Использование в fcm-django < 1: https://fcm-django.readthedocs.io/en/archive-pyfcm/

devices.send_message(title=self.title, body=self.description, click_action=self.link)

Используется в последней версии fcm-django: https://fcm-django.readthedocs.io/en/latest/

from firebase_admin.messaging import Message, Notification

devices.send_message(
    Message(
        notification=Notification(title=self.title, body=self.description),
        android=AndroidNotification(click_action=self.link),
        apns=APNSConfig(payload=APNSPayload(aps=Aps(category=self.link))),
    )
)
Вернуться на верх