在选择字段上设置空标签给我一些问题。我已经看过如this的答案,但这只是谈论表单。Django在选择字段中的空标签 - 没有查询集
假设我有以下型号:
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)下面INIT方法添加到我的型号表格:
def __init__(*args, **kwargs):
super(MyColorForm, self).__init__(*args, **kwargs)
self.fields['my_color'].choices = [('', '---Please select your color---')] + MyColorModel.COLOR_CHOICES
选项1导致一些副作用,其中if语句,我已经开始失败了,这就是促使我创建选项2
难道罚款添加空白标签,我的模型(选项2)?任何副作用,如果我添加它,或者它是更好的添加它的形式?当我在表单中设置空标签时,它似乎只是很多代码。
谢谢!你是正确的,我需要空白=真正在那里的选项1.我要选择2,但我一定会使用其中一个人现在 – Johan