Django:多对多字段中的空选项
在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代码,就能清除下拉框里的任何选择。
这样对用户来说界面会更清晰,而且实现起来也很简单。
声明:我不是设计师。