Я не знаю, какую версию Django вы используете, но я пользуюсь 1.10.1, и я использовал следующее:
ICONS = (
(None, ''),
(None, '==Extra Contact Info=='),
('phone', 'Phone'),
('phone', 'Phone (square)'),
('fax', 'Fax'),
('envelope', 'E-mail (black)'),
('envelope-o', 'E-mail (white/clear)'),
(None, ''),
(None, '==Social Media=='),
('facebook', 'Facebook'),
('facebook-official', 'Facebook (official)'),
('facebook-square', 'Facebook (square)'),
('google-plus', 'Google Plus'),
...
)
и это все, что я использовал, и если пользователь выбирает какой-либо элемент списка в раскрывающемся меню, в котором есть значение «Нет», он будет лаять на пользователя, говоря «Это поле обязательно для заполнения».
Теперь ... конечно, в моем проекте список вариантов используется на моей странице what.com/admin, но это может быть неактуально. Однако важно то, что вы должны убедиться, что поле класса вашей модели (или формы) не содержит «blank = True». По умолчанию оно должно быть ложным, если вы его опускаете, другими словами, поле не будет принимать пустые или пустые строковые значения. Это должно быть все, что вам нужно ...