Я пытаюсь перенести мою модель - но она дает мне ошибку - - PullRequest
1 голос
/ 20 февраля 2020

Ошибка - client.Client.status: (fields.E005) 'выбор' должен быть повторяемым, содержащим (фактическое значение, читаемое имя) кортежи.

Вот код:

class Client(models.Model):
    client_name = models.CharField(max_length=300)
    address = models.CharField(max_length=300)
    start_date = models.DateField(default=datetime.now, blank=True)
    end_date = models.DateField(default=datetime.now, blank=True)
    created = models.DateTimeField(auto_now_add=True)
    ACTIVE = 'AC',
    TO_EXPIRE = 'TE',
    EXPIRED = 'EX',
    STATUS_CHOICES = [
        (ACTIVE, 'Active'),
        (TO_EXPIRE, 'To Expire'),
        (EXPIRED, 'Expired'),

    ]
    status = models.CharField(max_length=2, choices=STATUS_CHOICES, default=ACTIVE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)

1 Ответ

6 голосов
/ 20 февраля 2020

Ваша проблема проста, но тонка:

ACTIVE = 'AC',
TO_EXPIRE = 'TE',
EXPIRED = 'EX',

Вы должны удалить запятые здесь. Python интерпретирует их как кортежи длины один со значением индекса 0, равным строке.

например,

ACTIVE = ('AC',) 
# is equivalent to
ACTIVE = 'AC',

То, что вам нужно, это просто ACTIVE = 'AC'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...