带复选框的Django RawIdWidget

时间:2012-03-27 12:55:11

标签: django django-forms django-admin

我有一个组织的raw_field_id:

  

raw_id_fields =('organizations',)

这将显示一个输入字段,其中包含所选组织的ID。

当您点击放大镜时,会打开一个弹出窗口,其中列出的所有组织都很好。您可以单击一个组织,ID将被放入输入字段。

是否可以使用复选框选择多个组织?

2 个答案:

答案 0 :(得分:0)

如果你想将Orgnization列为复选框(实际上是单选按钮或dorpdown)并在其中选择一个。只需替换默认小部件。

如果您想要提取多个项目,则可能需要检查ManyToManyField。在A和B之间的多对一关系(即ForeignKey)中,一个A实例可以在任何时间最多引用一个B实例。

答案 1 :(得分:0)

坏消息是没有简单的方法可以做到这一点。

您必须继承ManyToManyRawIdWidget并至少覆盖render方法。还需要进一步的工作来创建列出具有复选框的组织的页面,并使用选择按钮更新organizations原始id字段。完成此操作后,您将使用Meta.widgets属性来使用自定义窗口小部件,而不是使用raw_id_fields选项。