扩展django管理员提交操作

时间:2012-06-01 12:41:47

标签: python django

我有一个django模型,我想通过管理站点编辑/添加。 该模型包含一个标记列表,每个标记都包含一个分数。 (多对多关系)。

除了标签之外,我还希望模型中有另一个字段,用于在通过管理界面将模型提交到数据库时计算标记得分。

所以基本上我在提交后需要一个事件,所以我可以遍历所有的模型标签并计算得分。

是否可以以这种方式扩展管理界面?

2 个答案:

答案 0 :(得分:1)

你最好的选择可能是覆盖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

答案 1 :(得分:0)

最好的方法是使用signals。在这种情况下,您可以使用m2m_changed signal