Django 序列化一个 JsonField,Django Rest API

Django Serialize a JsonField, Django Rest API

例如我有一个class

from django.forms import JSONField

class Area(models.model):
  GeoJson = JSONField
  ...

和 class

的序列化器
class AreaSerializer(serializers.ModelSerializer):
  model = Areas
  fields = ('GeoJson',
              ...    )

但是当我尝试从我的休息框架工作中获取数据时,我得到了这个错误

Object of type 'JSONField' is not JSON serializable

我做错了什么?这是我第一次使用 django,我需要将 GeoJson 存储在数据库中,所以我真的很困惑如何解决这个问题,因为我不明白为什么它不起作用,非常感谢任何帮助或建议。

您在模型中使用了表单字段,而不是 Django 的 JSONField model field [Django-doc]。应该是:

#         models 🖟
from django.db<strong>.models</strong> import JSONField

class Area(models.model):
    geojson = JSONField<strong>()</strong>

不过,您可能有兴趣使用 spatial field type [Django-doc], and take a look at django-geojson [GitHub] 来实现 GeoJSON 功能。