gpt4 book ai didi

django-rest-framework - 使用选项序列化 IntegerField 的选择文本

转载 作者:行者123 更新时间:2023-12-04 03:52:05 25 4
gpt4 key购买 nike

我想序列化一个有很多选择的模型,比如:

class House(models.Model):
ACCESSIBILITY_CHOICES = (
(ACCESSIBILITY_FULL, 'Full'),
(ACCESSIBILITY_PARTIAL, 'Partial'),
(ACCESSIBILITY_NONE, 'None')
)

accessibility = models.IntegerField(max_length=1, choices=ACCESSIBILITY_CHOICES, null=True)

我喜欢默认的序列化程序,例如:
class HouseView(generics.ListCreateAPIView):
model = House
serializer_class = HouseSerializer

class HouseSerializer(serializers.ModelSerializer):

class Meta:
model = House

如果我只想要整数值,效果很好
{accessibility:1}

但是,我想得到什么
{accessibility:'Full'}

非常感谢您的帮助。
非常感谢。

最佳答案

使用原始值设置序列化程序字段中的选项,如下所示...

ACCESSIBILITY_CHOICES = (
('Full', 'Full'),
('Partial', 'Partial'),
('None', 'None')
)

然后看看覆盖 'to_native' 方法,以便将字符串值转换为它们的等效整数。

这应该给你一个使用字符串表示的外部 API,但一个使用整数表示的后端。

2019 年更新: DRF 现在使用不同的方法名称从/到内部转换,参见 docs .命名它们: to_representationto_internal_value , 而不是 to/from_native .

关于django-rest-framework - 使用选项序列化 IntegerField 的选择文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20107471/

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