Django - 表单小部件,带有一个复选框,可以选择无限制或文本框中的数字

时间:2010-10-11 09:00:38

标签: python django django-forms

我正在Django制作一个表单。要显示的字段是表示某个限制的数字字段。它可能没有限制。而不是强迫用户输入一些奇怪的数字来表示无限(例如-1),我希望有一个单选按钮,有2个选项:“无限制”,第二个选项是用户可以输入的文本框价值进入。

原始模型只有IntegerField,可以为null。空值用于表示无限制。有没有什么方法可以使这个字段的FormField包含这个复选框功能?

我知道我可以亲自手写HTML,我想知道是否有一个已经制作的django字段/小部件可以做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以让表单为复选框添加其他表单字段。并覆盖它的保存方法以相应地填充模型字段。或者,您可以创建一个自定义表单字段小部件,该小部件可以保存两个HTML输入字段并从输入中生成相应的python值,反之亦然。第一个选项是更简单的实现,如果只需要在一个表单中需要此功能,则更明智。无论哪种方式,我都会重新考虑使用空值来表示除了没有输入值之外的任何内容。如果所有其他用户指定的值只能为正数,则可以使Intemp字段保持-1表示无限制。或者添加另一个布尔模型字段来保存此复选框的值。