Django管理员附带的内置操作通常会在顶部执行后显示一条有用的消息,例如:说添加了一个新对象或者你有什么。
docs显示了如何使用可以表示为自定义ModelAdmin方法的简单操作来完成此操作。但是,对于需要中间页面的自定义操作(在同一页面上进一步覆盖),我鼓励将用户传递到另一个视图。这很好,但这意味着我无法再访问自定义的ModelAdmin实例以调用其message_user()
方法......或者至少我不知道如何获取它。
您能告诉我如何获取当前的ModelAdmin实例,或者,如果有更好的方法,当我在其他视图中完成时,如何显示其中一条有用的小消息?
答案 0 :(得分:3)
要模仿ModelAdmin.message_user方法,您只需执行以下操作:
from django.contrib import messages
messages.info(request, message)
此处记录了添加消息https://docs.djangoproject.com/en/dev/ref/contrib/messages/#adding-a-message,并且可以在此处看到ModelAdmin使用它的方式:https://code.djangoproject.com/browser/django/trunk/django/contrib/admin/options.py#L691
答案 1 :(得分:0)
构建LogEntry并编写自定义模板标签以在中间页面上呈现消息,例如:
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)