Установка пустой метки для поля выбора дает мне некоторые проблемы. Я просмотрел ответы, например, this, но это просто говорит о форме.Django пустая метка в поле выбора - no queryset
Предположим, у меня есть следующие модели:
class MyColorModel(models.Model):
BLUE = 'blue'
RED = 'red'
GREEN = 'green'
COLOR_CHOICES = (
(BLUE, 'Blue'),
(RED, 'Red'),
(GREEN, 'Green'))
my_color = models.CharField(max_length=5, choices=COLOR_CHOICES, blank=True)
И эта форма:
class MyColorForm(forms.ModelForm):
class Meta:
model = MyColorModel
fields = ['mycolor']
По умолчанию, это будет отображать поле выбора, с пустой ярлык установлен ----- -
У меня есть следующие опции для установки метки.
1) Изменить COLOR_CHOICES в моей модель к:
COLOR_CHOICES = (
('', '---Please select your color---'),
(BLUE, 'Blue'),
(RED, 'Red'),
(GREEN, 'Green'),
2) Изменение COLOR_CHOICES в моей модели к:
COLOR_CHOICES = (
(None, '---Please select your color---'),
(BLUE, 'Blue'),
(RED, 'Red'),
(GREEN, 'Green'),
3) Добавьте следующий инициализации метод моя модель вид:
def __init__(*args, **kwargs):
super(MyColorForm, self).__init__(*args, **kwargs)
self.fields['my_color'].choices = [('', '---Please select your color---')] + MyColorModel.COLOR_CHOICES
Варианты 1 привели к некоторым побочным эффектам, где, если заявления, которые я начал неудачу, это то, что привело меня к созданию Вариант 2.
ли это нормально добавив пустой ярлык для моей модели (вариант 2)? Любые побочные эффекты, если я добавлю его там, или лучше добавить его в форму? Мне просто кажется, что достаточно кода просто установить пустую метку, когда я делаю это в форме.
Спасибо! Вы правы, мне нужно пусто = Истина там для варианта 1. Я собирался для варианта 2, но я обязательно буду использовать один из других сейчас – Johan