如何在Django中使用中间页面显示自定义管理员操作后的确认消息?

4 投票
2 回答
5145 浏览
提问于 2025-04-17 01:13

Django后台自带的操作在执行后通常会在页面顶部显示一些有用的信息,比如说新添加了一个对象之类的。

文档里介绍了如何通过简单的操作,把这些操作写成自定义的ModelAdmin方法。不过,如果是需要中间页面的自定义操作(文档后面会详细讲到),我就需要把用户引导到另一个视图。这听起来不错,但这样一来,我就无法访问到自定义的ModelAdmin实例来调用它的message_user()方法了……或者说,我不太确定该怎么获取它。

你能告诉我怎么才能获取到当前的ModelAdmin实例吗?或者如果有更好的方法,怎么在完成其他视图的操作后显示那些有用的小消息呢?

2 个回答

0

创建一个日志条目,并写一个自定义的模板标签,用来在你的中间页面上显示消息,比如:

  LogEntry.objects.log_action(
      user_id=request.user.id,
      content_type_id=ContentType.objects.get_for_model(yourmodel).pk,
      object_id=case.id,
      object_repr=force_unicode(yourmodel),
      action_flag=ADDITION if created else CHANGE)

了解更多: Django 文档(消息框架)

撰写回答