尝试在模型字段上设置选择时出现错误。这是代码:
TICKET = 'TICKET',
TICKET_HISTORY = 'TH'
TICKET_RATE = 'TR'
PASSWORD_CHANGE = 'PASS'
CONTENT = 'CN'
TYPE_CHOICES = [
(TICKET, 'Ticket created'), (TICKET_HISTORY, 'Ticket changed'), (TICKET_RATE, 'Ticket rated'),
(PASSWORD_CHANGE, 'Password changed'), (CONTENT, 'Added content')
]
type = models.CharField(max_length=6, choices=TYPE_CHOICES, default=TICKET)
Run Code Online (Sandbox Code Playgroud)
TYPE_CHOICES 似乎是正确的,无法理解问题出在哪里
例外:
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f8acad18bf8>
Traceback (most recent call last):
File "/home/userwoozer/work/tickets/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/home/userwoozer/work/tickets/env/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
self.check(display_num_errors=True)
File "/home/userwoozer/work/tickets/env/lib/python3.6/site-packages/django/core/management/base.py", line 425, in check
raise SystemCheckError(msg)
django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:
ERRORS:
main.Activity.type: (fields.E005) 'choices' must be an iterable containing (actual value, human readable name) tuples.
Run Code Online (Sandbox Code Playgroud)
*只是把这个放在这里,认为它可能对某人有帮助
就我而言,我在运行makemigrations命令时遇到了这个问题,并且我的选择定义如下,
ACTION_TYPE = (
(RATE_ADVISOR, 'Rate Advisor')
)
Run Code Online (Sandbox Code Playgroud)
我只是在选项末尾加了一个逗号,我的问题就解决了
ACTION_TYPE = (
(RATE_ADVISOR, 'Rate Advisor'), #note this comma here
)
Run Code Online (Sandbox Code Playgroud)
小智 -1
TYPE_CHOICES = (
('TICKET', 'Ticket created'),
('TICKET_HISTORY', 'Ticket changed'),
('TICKET_RATE', 'Ticket rated'),
('PASSWORD_CHANGE', 'Password changed'),
('CONTENT', 'Added content')
)
Run Code Online (Sandbox Code Playgroud)