2012-04-06 59 views
1

我有以下几点:DJANGO:空白选择选项缺少形式

MODEL.PY

LIST = (('Manager', 'Manager'),('Non-Manager', 'Non-Manager'),) 

class Employee(models.Model): 
    fname = models.CharField(max_length=15, blank=False, null=False) 
    manager = models.CharField(max_length=15, choices=LIST, blank=True, null=True) 
    comment = models.TextField(blank=True, null=True) 
    def __unicode__(self): 
     return self.fname 

class EmployeeForm(forms.ModelForm): 
    fname = forms.CharField(required=True, label='First Name') 
    manager = forms.CharField(required=False, widget=Select(choices=LIST), label='Their Position?') 
    comment = forms.CharField(required=False, widget=forms.Textarea(attrs={'cols': 50, 'rows': 10}), label='Comments') 
    class Meta: 
     model = Employee 

如果我从EmployeeForm除去经理,我得到一个 “------” 为在表单下拉菜单中有一个选项,但是如果我在EmployeeForm中保留管理器(并且我需要为了覆盖字段标签),它将删除“------”。我如何允许EmployeeForm保留“------”选项?

+0

什么是'LIST'设置为? – dgel 2012-04-06 21:32:52

+0

对不起,这是一个错误,请参阅更正的问题。 – thedeepfield 2012-04-06 21:34:47

回答

2

约像什么:

manager = forms.CharField(required=False, widget=Select(choices=(('', '----------'),) + LIST), label='Their Position?') 
+0

所以我见过这个解决方案。我想我会尝试它,但我想我想知道为什么如果我从EmployeeForm中删除管理器,默认情况下它给了我这个选项?并将其设置为默认选项? – thedeepfield 2012-04-06 21:38:33

+0

当它自动执行时,它知道'blank = True',因此添加了空白选项。如果你是用自己的小工具自己做,那么就由你来创建正确的选择。 – dgel 2012-04-06 21:40:00

+0

有没有办法把小部件中的blank = True? – thedeepfield 2012-04-06 21:42:05