如何在Django Rest框架中为枚举字段创建序列化程序 [英] how to create serializer for an enum field in django rest framework

查看:295
本文介绍了如何在Django Rest框架中为枚举字段创建序列化程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在python django rest框架中编写一个API,我被困在为ENUM创建序列化字段的过程中,如何为ENUM字段创建序列化字段。
我的模型代码是:

i am writing an API in python django rest framework and i am stuck at creating a serializer field for an ENUM, how can i create a serializer field for an ENUM field. my model code is:

class Queue(models.Model):
    class Meta:
        db_table = 'queues'

    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True)
    name = models.CharField(max_length=45)
    type = EnumChoiceField(QueueTypes, default=QueueTypes.pending)
    date = models.DateTimeField(auto_now=True)

,而我正在为此模型编写一个序列化器。

and i am writing a serializer for this model.

class QueueSerializer(serializers.ModelSerializer):
    class Meta:
        model = Queue
        fields = ('__all__')

    id = serializers.CharField(read_only=True)
    name = serializers.CharField(max_length=45, required=True)
    type=?????# what am i supposed to do here?
    date = serializers.DateTimeField(read_only=True)


推荐答案

EnumChoiceField 扩展名似乎可以正常运行,但不能正确支持 REST Framework 的HTML支持呈现,这些字段序列化为 EnumChoiceField 不会呈现。

The EnumChoiceField extension seems to work fine but does not correctly support the HTML support render of the REST Framework, fields serialized as EnumChoiceField are not rendered.

这篇关于如何在Django Rest框架中为枚举字段创建序列化程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆