Django Field Choices - PullRequest
       17

Django Field Choices

2 голосов
/ 22 марта 2012

Ниже дано определение моей модели, и я добавил этот модуль в часть Admin. Я пытаюсь создать новую строку и при выборе значения «3» или любого другого значения для поля «Продолжительность» (указан как поля выбора) я получаю следующую ошибку. «Значение 3 не является допустимым выбором».

Пожалуйста, укажите ваши данные.

Определение модели NO_OF_HRS = ( ( '1', 'One'), ( '2', 'Два'), ( '3', 'Три'), ( '4', 'Четыре'), ( '5', 'Пять'), ( '6', 'Six'), ( '7', 'Семь'), ( '8', 'Восемь'), ( '9', 'Девять'), ( '10', 'Десять'), ( '11', 'одиннадцать'), ( '12', 'Двенадцать'), )

YR_MONTH = (
("Y", "Year"),
("M", "Month"),
)

POS_STATUS = (
("A", "Active"),
("C", "Closed"),
)

datecreated   = models.DateTimeField()
volposition   = models.CharField(max_length=300)
roledesc      = models.CharField(max_length=5000)
noofhours     = models.IntegerField(blank = True,null = True)
Qualreqt      = models.CharField(max_length=8000)
Duration      = models.IntegerField(choices=NO_OF_HRS,blank = True,null = True)
Durationyrmon = models.CharField(choices=YR_MONTH,max_length=10)
posstatus     = models.CharField(choices=POS_STATUS,max_length=1)
teamrelation  = models.CharField(max_length=50)

Ответы [ 2 ]

5 голосов
/ 22 марта 2012

Когда вы используете choices, первое значение кортежа - это значение, которое будет храниться в базе данных, а второе значение - это значение, которое будет отображаться в администраторе.

В NO_OF_HRS значения являются строками (например, '1', '2'), но это models.IntegerField, поэтому значения должны быть целыми числами.Вот почему вы сейчас получаете ошибку.

0 голосов
/ 02 июня 2015

Открыл тикет на django с исправлением и грязным исправлением:

https://code.djangoproject.com/ticket/24897

...