gpt4 book ai didi

python - 'type' 对象在使用 django_enums 时不可迭代

转载 作者:行者123 更新时间:2023-11-28 18:27:47 24 4
gpt4 key购买 nike

我尝试使用 django_enums并在进行迁移时遇到 list(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

我安装了 django-enums,枚举和六个:

(venv:SFS)rita@rita-notebook:~/Serpentarium/ServiceForServices/project/serviceforservices$ pip install django-enums
(venv:SFS)rita@rita-notebook:~/Serpentarium/ServiceForServices/project/serviceforservices$ pip install enum
(venv:SFS)rita@rita-notebook:~/Serpentarium/ServiceForServices/project/serviceforservices$ pip install six

在 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

关于python - 'type' 对象在使用 django_enums 时不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40042345/

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