gpt4 book ai didi

python - 如何在 Django Rest Framework 中将数组序列化为字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 20:09:49 32 4
gpt4 key购买 nike

在使用 Django 构建的网站中,我有一个具有 CharField 的模型:

class Person(models.Model):
name = models.CharField(max_length=255)
age = models.IntegerField()
categories = models.CharField(max_length=255)

CharField 可以包含以逗号分隔的字符串列表。例如:ADC、HJD、RTP

使用Django Rest Framework我创建了一个 POST 端点,人们可以在其中发布新记录。该字段以数组形式发布在 json 中。所以 json 看起来像这样:

{
"name": "John",
"age": 25,
"categories": ["ADC", "HJD", "RTP"]
}

我想简单地在 Serializer create() 方法中 join() 数组。但它永远不会达到那个点,因为它被验证器过滤掉了。我猜验证是在 View 中完成的,但我不确定从哪里开始挖掘。

有人知道如何使端点接受数组并将其转换为 CharField 中的逗号分隔字符串吗?

[编辑]

这些是我的 View 集:

class DevicesViewSet(DatapuntViewSetWritable):
queryset = Device.objects.all().select_related('owner', 'contact').prefetch_related('types').order_by('id')

serializer_class = DeviceSerializer
serializer_detail_class = DeviceSerializer

http_method_names = ['post', 'list', 'get']


class ContactViewSet(CreateModelMixin, GenericViewSet):
queryset = Device.objects.none()
serializer_class = IotContactSerializer
pagination_class = None

最佳答案

根据编辑后的问题,您可以执行以下操作。在您的 View 中继承viewsets.ViewSet并重写create方法并编写您的串联逻辑。 Check here

class CreatePersonViewSet (viewsets.ViewSet):
def create(self, request):
"""
Do your logic here... to create
"""
pass

关于python - 如何在 Django Rest Framework 中将数组序列化为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58774730/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com