Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django EnumField用于Python3和DRF支持_Django_Python 3.x_Django Models_Enums_Django Rest Framework - Fatal编程技术网

Django EnumField用于Python3和DRF支持

Django EnumField用于Python3和DRF支持,django,python-3.x,django-models,enums,django-rest-framework,Django,Python 3.x,Django Models,Enums,Django Rest Framework,我需要我的Django模型的EnumField。我试过了。但它不支持Django 1.10。我也试过这个。但Django REST框架不支持这一点 我的用例 # models.py role = EnumField(UserRoleEnum, default=UserRoleEnum.STUDENT) # enums.py class UserRoleEnum(Enum): STUDENT = 0 TEACHER = 1 ADMIN = 2 注意:三天后。没有回答( 我用了一个这

我需要我的Django模型的EnumField。我试过了。但它不支持Django 1.10。我也试过这个。但Django REST框架不支持这一点

我的用例

# models.py
role = EnumField(UserRoleEnum, default=UserRoleEnum.STUDENT)

# enums.py
class UserRoleEnum(Enum):
  STUDENT = 0
  TEACHER = 1
  ADMIN = 2

注意:三天后。没有回答(

我用了一个这样的

enums.py

class MyEnum:
    ADMIN = 0
    NORMAL = 1

USER_ENUM_CHOICES = (
    (0, 'ADMIN'),
    (0, 'NORMAL')
)
class MyModel(models.Model):
    role = models.CharField(choices=MyEnum.USER_ENUM_CHOICES, max_length=1, ...)
型号.py

class MyEnum:
    ADMIN = 0
    NORMAL = 1

USER_ENUM_CHOICES = (
    (0, 'ADMIN'),
    (0, 'NORMAL')
)
class MyModel(models.Model):
    role = models.CharField(choices=MyEnum.USER_ENUM_CHOICES, max_length=1, ...)

注意:对于简单的情况,这不是一个坏主意。

我从一个简单的选择迁移到,现在我也遇到了DRF的问题。简而言之,我可以通过使用正确序列化字段(获取和设置)。但是当我尝试添加筛选器时,它再次中断。请参阅