"TYPE类型的对象不可JSON序列化 Django"

2024-04-20 01:44:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用ReactJS和Graphql作为前端,django和graphene作为后端。你知道吗

在django,我的代码如下:

company = Company.objects.get(pk=input.company.id)   
###### Result is <Company: Company object (14)>        
UserByManagerCreated.delay(company=company)

UserByManagerCreated我有:

@task
def UserByManagerCreated(company):
    #Send emails, ....
    pass

但是我得到一个错误Object of type 'Company' is not JSON serializable

你知道吗?你知道吗


Tags: django代码idinputgetobjectsisresult
1条回答
网友
1楼 · 发布于 2024-04-20 01:44:56

不能将其发送到芹菜任务,因为它应该是可序列化的,因为延迟的任务存储在队列(RedisRabbit)中,并且应该是可序列化的。因此,可以将所有可序列化类型作为参数传递给芹菜任务。你知道吗

我的建议是传递任务中需要使用的值。不是company本身,而是您需要的值。或者你可以把它们放进字典里,然后传给别人。你知道吗

   company = Company.objects.get(pk=input.company.id)
   company_data = {'id': company.id, 'your_field': company.your_field}   
   UserByManagerCreated.delay(company=company_data)

正如AKX所建议的,您只能传递id并在任务中检索您的company。但如果它是一个发送邮件的任务,我认为你可以只发送需要的电子邮件列表作为参数发送电子邮件那里。你知道吗

相关问题 更多 >