在admin中显示来自信号的自定义消息

时间:2012-12-20 03:41:39

标签: django

我有一个预先保存的信号监听器,可以更新第二个模型。与此示例相同:

我想让用户知道听众成功更新了模型并提供了一些信息。通常,我认为我可以使用django具有的内置消息功能。问题是信号无法访问“请求”。所以我看不出如何使用内置的Django Messages Framework。

是否有一种已知的方法可以在管理员中向用户发送消息?也许通过覆盖其中一个模型的save()方法? (发送信号或接收信号的那个),但我不认为save()方法可以访问'request'吗?

这必须是其他人想要做的事情吗?

1 个答案:

答案 0 :(得分:5)

您可以在ModelAdmin中覆盖save_model方法。像这样:

from django.contrib import messages
# your imports
...
# your code

def save_model(self, request, obj, form, change):
    obj.user = request.user  
    obj.save()
    # you can just call super(YourModelAdminName, self).save_model(request, obj, form, change)
    messages.add_message(request, messages.INFO, 'Text of message')