Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.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
Python ';类型';对象在使用django_枚举时不可使用_Python_Django_Enums - Fatal编程技术网

Python ';类型';对象在使用django_枚举时不可使用

Python ';类型';对象在使用django_枚举时不可使用,python,django,enums,Python,Django,Enums,我尝试使用列表(cls)进行迁移时出错: (venv:SFS)rita@rita-notebook:~/Serpentarium/ServiceForServices/project/serviceforservices$ python manage.py makemigrations Traceback (most recent call last): File "manage.py", line 22, in <module> execute_from_com

我尝试使用列表(cls)进行迁移时出错:

(venv:SFS)rita@rita-notebook:~/Serpentarium/ServiceForServices/project/serviceforservices$ python manage.py makemigrations
    Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/rita/Serpentarium/ServiceForServices/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/home/rita/Serpentarium/ServiceForServices/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 341, in execute
    django.setup()
  File "/home/rita/Serpentarium/ServiceForServices/venv/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/rita/Serpentarium/ServiceForServices/venv/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/home/rita/Serpentarium/ServiceForServices/venv/local/lib/python2.7/site-packages/django/apps/config.py", line 199, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/rita/Serpentarium/ServiceForServices/project/serviceforservices/service/models.py", line 84, in <module>
    class EmployeesStatus(models.Model):
  File "/home/rita/Serpentarium/ServiceForServices/project/serviceforservices/service/models.py", line 86, in EmployeesStatus
    status = enum.EnumField(StatusEnum, default=StatusEnum.AT)
  File "/home/rita/Serpentarium/ServiceForServices/venv/local/lib/python2.7/site-packages/django_enums/enum.py", line 53, in __init__
    kwargs['max_length'] = self.enum.get_max_length()
  File "/home/rita/Serpentarium/ServiceForServices/venv/local/lib/python2.7/site-packages/django_enums/enum.py", line 39, in get_max_length
    return len(max(list(cls), key=(lambda x: len(x.key))).key)
TypeError: 'type' object is not iterable
在Models.py中使用:

...
from django_enums import enum

...
class StatusEnum(enum.Enum):
__order__ = 'AT BT BC AC'  # for python 2

AT = (u'АВ', u'Активен временно')
BT = (u'БВ', u'Блокирован временно')
BC = (u'БП', u'Блокирован постоянно')
AC = (u'АП', u'Активен постоянно')

class EmployeesStatus(models.Model):
    name = models.CharField(max_length=128)
    status = enum.EnumField(StatusEnum, default=StatusEnum.AT)

看起来这个项目还活着,它也为Django 1.10进行了更新,并且可以与python 2进行比较。那么,我做错了什么

看起来您正试图使用3.4 stdlib中的后端口枚举,但是您安装了
enum
——您需要安装
enum34

请共享引发错误的views.py文件的代码。发布
viwes.py
的代码回溯显示EmployeesStatus模型中发生了此错误,不是事件日志。发布您的
StatusEnum
...
from django_enums import enum

...
class StatusEnum(enum.Enum):
__order__ = 'AT BT BC AC'  # for python 2

AT = (u'АВ', u'Активен временно')
BT = (u'БВ', u'Блокирован временно')
BC = (u'БП', u'Блокирован постоянно')
AC = (u'АП', u'Активен постоянно')

class EmployeesStatus(models.Model):
    name = models.CharField(max_length=128)
    status = enum.EnumField(StatusEnum, default=StatusEnum.AT)