代码之家  ›  专栏  ›  技术社区  ›  Jack Duffy

Django序列化一个JsonField,Django Rest API

  •  1
  • Jack Duffy  · 技术社区  · 2 年前

    例如,我有一门课

    from django.forms import JSONField
    
    class Area(models.model):
      GeoJson = JSONField
      ...
    

    以及类的序列化程序

    class AreaSerializer(serializers.ModelSerializer):
      model = Areas
      fields = ('GeoJson',
                  ...    )
    

    但是当我试图从rest框架中获取数据时,我得到了这个错误

    Object of type 'JSONField' is not JSON serializable
    

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

    1 回复  |  直到 2 年前
        1
  •  1
  •   willeM_ Van Onsem    2 年前

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

    #         models 🖟
    from django.db.models import JSONField
    
    class Area(models.model):
        geojson = JSONField()

    不过,你可能有兴趣与 spatial field type  [Django-doc] ,然后看看 django-geojson  [GitHub] 用于GeoJSON功能。