2012-09-17 35 views
0

我有在Django的模型,看起來像這樣:django - 如何在選擇領域找回空的選擇?

class Project(models.Model): 
    name = models.CharField(max_length=140) 
    parent = models.ForeignKey('self', blank=True, null=True) 

的目標是做一個形式,這種模式與選擇控件的parent場將代表項目的層次結構。我嘗試通過對queryset進行排序並在每個選項的標籤前添加縮進來重新定義此字段的選項對。但是,當我做對(project.id, project.name)的列表形式

class ProjectForm(ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(ProjectForm, self).__init__(*args, **kwargs) 
     ordered = [] 
     // ... making ordered list ... 
     self.fields['parent'].choices = ordered 

此字段的默認爲空的選擇會丟失。有誰知道如何恢復? 在此先感謝。

回答

1

__init__,添加:

self.fields['parent'].choices = ordered 
self.fields['parent'].choices.append('', u'None) 
+0

太謝謝你了!它對我來說非常合適。 – vero4ka

+0

我修改了一下,使默認選項優先: 'self.fields ['parent']。choices.insert(0,('',u''''))' – vero4ka