django - 如何在选择领域找回一个空的选择?

时间:2012-09-17 12:22:14

标签: django django-models django-forms

我在Django中有一个模型,如下所示:

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

目标是为parent字段的select小部件创建此模型的表单,该小部件将表示项目的层次结构。我尝试通过对查询集进行排序并在每个选项的标签前添加缩进来重新定义此字段的选择对。但是当我为表格

制作成对(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 个答案:

答案 0 :(得分:1)

__init__中,添加:

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