Django:多对多字段中的空选项

0 投票
1 回答
952 浏览
提问于 2025-04-15 15:42

在Django中创建表单时,如果你把IntegerField设置为blank=True和null=True,它会显示一个空白选项(就是一堆破折号“------”)。那么,有没有办法让ManyToManyField也显示这样的空白选项呢?

我尝试过通过子类化ManyToManyField来实现,但没有成功:

class ManyFieldWithBlank(ManyToManyField):  

    """  
    A Many-to-Many Field with a blank choice  
    """  
    def get_choices_default(self):
        return Field.get_choices(self, include_blank=True)

1 个回答

4

我觉得这并不是对界面的真正改进。

为什么不在你的模板里加一个按钮,写上“都不是这些”或者“重置选择”?更好的是,如果你的字段叫“Blah”,那按钮就可以写成“取消选择所有Blah”。

这个按钮只需要一些简单的JavaScript代码,就能清除下拉框里的任何选择。

这样对用户来说界面会更清晰,而且实现起来也很简单。

声明:我不是设计师。

撰写回答