有没有办法在Django管理员中显示一个复选框,而不是将它与BooleanField相关联,如果在保存时没有检查它,则运行一个函数?我不需要在数据库中存储布尔值,但可能需要存储某些内容,具体取决于其他字段,以及是否选中了复选框。
特别是,如果刚刚选中复选框,我想存储一个ForeignKey,如果复选框刚刚取消选中则将其清空(将ForeignKey设置为null),并且不执行任何操作,复选框状态保持不变。我不想向用户显示这个ForeignKey的内容,只需设置它或在幕后删除它。
答案 0 :(得分:0)
您可以向表单添加任意字段:它们需要是表单字段(例如forms.BooleanField),但只要它们不存在于模型中,它们就不会被保存。< / p>
然后,您可以在表单的clean()
方法或modeladmin的save_form
方法中执行您喜欢的任何操作。