【问题标题】:django - how to get back an empty choice in choice field?django - 如何在选择字段中取回一个空的选择?
【发布时间】: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

此字段的默认空选项会丢失。有谁知道如何找回它? 提前致谢。

【问题讨论】:

    标签: django django-models django-forms


    【解决方案1】:

    __init__,添加:

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

    【讨论】:

    • 我稍微修改了一下,让默认选项先出现:self.fields['parent'].choices.insert(0, ('', u'------'))
    猜你喜欢
    • 1970-01-01
    • 2010-10-22
    • 2018-12-27
    • 2013-03-08
    • 1970-01-01
    • 2016-04-18
    • 2012-02-06
    • 2014-08-17
    • 2011-02-13
    相关资源
    最近更新 更多