首页 > 解决方案 > Django ArrayField - 错误绑定参数 0 - 可能不受支持的类型

问题描述

我想在我的数据库中存储一个数组。为此,我在模型中使用了这种类型的 ArrayType [[[0.29, 10.27]]]:。我想使用序列化程序来创建我的 GET、POST 和 PUT 请求。这是我的模型:

模型.py

class Area(models.Model):
    osm = ArrayField(
        ArrayField(
            ArrayField(
                models.FloatField(),
                size=2,
            ),
        ),
    )

这是我的序列化程序:

序列化程序.py

class AreaSerializer(serializers.ModelSerializer):

    class Meta:
        model = Area
        fields = ['osm', ]

这是我的观点:

视图.py

class ShopAreaList(ShopCustomListView):
    """Get or create areas for a shop"""
    queryset = Shop.objects.all()
    lookup_field = 'path'

    def get(self, request, path):
        """Depends on mustBeLogged to get areas of a shop"""
        shop = self.get_object()
        areas = Area.objects.filter(shop=shop)
        serializer = AreaSerializer(areas, many=True)
        return Response(serializer.data)

    def post(self, request, path):
        """For admin or shop owner to create areas"""
        shop = self.get_object()
        serializer = AreaSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save(shop=shop)
            return Response(serializer.data)
        return Response(serializer.errors)

这是我得到的数据:

{
    "osm": [[[0.29, 10.27]]]
}

当我尝试运行我的 POST 方法时,我收到此错误:

Error binding parameter 0 - probably unsupported type.

我不知道我能做些什么来解决这个错误。

预先感谢您的帮助

标签: pythonarraysdjangolistdjango-serializer

解决方案


推荐阅读