Django admin中的复选框在没有BooleanField的情况下运行保存的Python函数

时间:2014-07-24 21:03:04

标签: python django django-models django-forms django-admin

有没有办法在Django管理员中显示一个复选框,而不是将它与BooleanField相关联,如果在保存时没有检查它,则运行一个函数?我不需要在数据库中存储布尔值,但可能需要存储某些内容,具体取决于其他字段,以及是否选中了复选框。

特别是,如果刚刚选中复选框,我想存储一个ForeignKey,如果复选框刚刚取消选中则将其清空(将ForeignKey设置为null),并且不执行任何操作,复选框状态保持不变。我不想向用户显示这个ForeignKey的内容,只需设置它或在幕后删除它。

1 个答案:

答案 0 :(得分:0)

您可以向表单添加任意字段:它们需要是表单字段(例如forms.BooleanField),但只要它们不存在于模型中,它们就不会被保存。< / p>

然后,您可以在表单的clean()方法或modeladmin的save_form方法中执行您喜欢的任何操作。