我在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
此字段的默认空选择会丢失。有谁知道怎么回来? 提前谢谢。
答案 0 :(得分:1)
在__init__
中,添加:
self.fields['parent'].choices = ordered
self.fields['parent'].choices.append('', u'None)