我有一个 django 模型,我想通过管理站点编辑/添加它。该模型包含一个标签列表,每个标签都有一个分数。(多对多关系)。
除了标签之外,我还想在模型中有另一个字段,当通过管理界面将模型提交到数据库时,它将计算标签分数。
所以基本上我在提交后需要一个事件,这样我就可以遍历所有模型标签并计算分数。
是否可以以这种方式扩展管理界面?
您最好的选择可能是压倒一切ModelAdmin.save_formset
,因为在保存主模型和 m2m 关系后调用该方法。
class MyModelAdmin(admin.ModelAdmin):
def save_formset(self, *args, **kwargs):
super(MyModelAdmin, self).save_formset(*args, **kwargs)
# do your calculation here
最好的方法是使用信号。在这种情况下,您可以使用m2m_changed 信号。