首页 > 解决方案 > 从 celery 中保存数据类型 JSONField

问题描述

模型.py:

from django.db import models
from datetime import datetime 
from django.db.models import TextField, JSONField, Model
# Create your models here.
class reservation(models.Model):
    res=models.JSONField()
    da = models.DateTimeField(default=datetime.now, blank=True)

任务.py:

@shared_task
def ress():
content={
           "customer": 48,
               "reservation_id_pms": str(id),
               "reservation_channel_number": None,
               "reservation_group_id_pms": "ed2b9d55-46d9-4471-a1e9-ad6c00e30661",
               "extra_reservation_code": "550ca1c1",
               }
       reservations=reservation.objects.create(res=content)
       reservations.save()
       res.append(content)
   return None

错误:

from django.db.models import TextField, JSONField, Model ImportError: cannot import name 'JSONField' from 'django.db.models' (/usr/lib/python3/dist-packages/django/db/models/ init .py)

标签: jsondjangorabbitmqcelerycelerybeat

解决方案


当未引入 JSONField 时,您可能使用的是较低版本的 Django (< 1.9)。所以尝试升级版本。

如果不是这种情况,请尝试安装 simplejson 库,因为有时 Django 本身可能不附带该库。

pip install simplejson

推荐阅读