2012-04-06 43 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