小编use*_*277的帖子

kombu.exceptions.EncodeError:用户不可JSON序列化

我有celery 4.1.0的django 1.11.5应用程序,我一直都收到了:

kombu.exceptions.EncodeError: <User: testuser> is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

我的settings.py:

CELERY_BROKER_URL = 'amqp://localhost'
CELERY_RESULT_BACKEND = 'amqp://localhost'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Asia/Makassar'
CELERY_BEAT_SCHEDULE = {}
Run Code Online (Sandbox Code Playgroud)

task.py

from __future__ import absolute_import, unicode_literals
from celery import task
from django.contrib.auth.models import User


@task(serializer='json')
def task_number_one():
    user = User.objects.create(username="testuser", email="test@test.com", password="pass")
    return user
Run Code Online (Sandbox Code Playgroud)

在视图中我调用任务:

def form_valid(self, form):
    form.instance.user = self.request.user
    task_number_one.delay()
    return super().form_valid(form)
Run Code Online (Sandbox Code Playgroud)

python django json celery celery-task

3
推荐指数
2
解决办法
2602
查看次数

标签 统计

celery ×1

celery-task ×1

django ×1

json ×1

python ×1