send_message() 缺少 1 个必需的位置参数:'message'
send_message() missing 1 required positional argument: 'message'
我正在使用 fcm-django
在 Django 中开发通知功能。我能够 运行 我在本地主机(开发服务器)上的代码,但是当我将相同的代码部署到生产服务器时,它抛出错误:
send_message() missing 1 required positional argument: 'message'
models.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)
如果我在本地主机(开发服务器)上编译代码并且运行良好,那么为什么我在生产服务器中遇到错误?
您在开发服务器上使用的是 fcm-django < 1
,但在生产服务器上是最新的。
生产服务器上的问题修复是限制需求文件中的版本。
requirements.txt:
# fcm-django
fcm-django < 1
您可能需要考虑 Migration to v1.0。
要在开发服务器上安装最新版本,运行 pip install
升级标志:
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
在 Django 中开发通知功能。我能够 运行 我在本地主机(开发服务器)上的代码,但是当我将相同的代码部署到生产服务器时,它抛出错误:
send_message() missing 1 required positional argument: 'message'
models.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)
如果我在本地主机(开发服务器)上编译代码并且运行良好,那么为什么我在生产服务器中遇到错误?
您在开发服务器上使用的是 fcm-django < 1
,但在生产服务器上是最新的。
生产服务器上的问题修复是限制需求文件中的版本。
requirements.txt:
# fcm-django
fcm-django < 1
您可能需要考虑 Migration to v1.0。
要在开发服务器上安装最新版本,运行 pip install
升级标志:
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))),
)
)