django - 如何在选择字段中取回一个空的选择?

Posted

技术标签:

【中文标题】django - 如何在选择字段中取回一个空的选择?【英文标题】:django - how to get back an empty choice in choice field? 【发布时间】:2012-09-09 15:48:15 【问题描述】:

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

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

我们的目标是为此模型制作一个表单,其中包含parent 字段的选择小部件,该小部件将代表项目的层次结构。我尝试通过对查询集进行排序并在每个选项的标签前添加缩进来重新定义该字段的选项对。但是当我为表格列出一对(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)

【讨论】:

我稍微修改了一下,让默认选项先出现:self.fields['parent'].choices.insert(0, ('', u'------'))

以上是关于django - 如何在选择字段中取回一个空的选择?的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何在手动表单字段中显示模型的外键对象作为选择

Django,如何从模型表单的选择字段中删除空白选择?

Django - UpdateView ModelForm 在查询集字段上设置初始值

在 django 映射中如何获得完整的选择字段计数

在 Django 中,根据模型中其他字段中选择的值删除选择字段下拉列表中的选项

django - 表单中的动态选择字段