进一步定制Django管理后台(添加新对象)

1 投票
2 回答
1564 浏览
提问于 2025-04-17 14:19

我在Django的管理界面做了一些设置,比如内联、过滤器、排序等等,但我想改变一下添加新项目时保存按钮的行为。你可以看看我的界面(虽然是法语的,但应该很容易理解,prix:价格 - enregistrer:保存)

Django管理界面

我有三个价格字段,一个是当前项目的价格,另外两个是之前的价格。我想要的是,当当前价格被修改并保存后,价格字段的数据自动转移到price2,price2再转移到price3。 这样的话,我就能一直看到之前的价格了。

还有一个问题:当点击保存(enregistrer)后,能不能让我返回到某个特定的页面,而不是所有对象的列表?

谢谢你的帮助!

2 个回答

0

有几种方法可以满足你的需求。最明显的两种方法是:

  1. 重写你模型的 save 方法(可以参考 Django 文档)。
  2. 重写你的 ModelAdminsave_model 方法。

我建议选择第一种方法,因为这看起来是一些逻辑,不想直接和管理员界面绑定,但具体还要看你正在开发的应用。

关于重定向,你可以看看 管理员保存时重定向

0

你可以这样来重写管理员的保存方法:

class MyModelAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        # custom stuff here
        obj.save()

另外,这个问题可能会帮你解决保存后重定向的问题:在管理员保存后重定向

撰写回答