首页 > 解决方案 > 当有人访问 django 管理页面时,如何添加一小段使用请求并运行的代码?

问题描述

如何添加在有人访问管理页面时运行的一小段代码。我正在尝试获取使用管理员并对数据库进行更改的用户的 IP 地址。我可以django signals用来查看何时进行更改,但我需要访问 djangorequest才能访问用户的 IP 地址。admin views我认为一种简单的方法是在我请求 IP 地址的位置添加一段代码并将其保存在变量中。我研究了覆盖 django 管理视图,但我发现的一切似乎都与创建查询集和以某种方式返回 http 请求相关,这不是我想要的(我不相信。)

标签: djangodjango-admindjango-request

解决方案


您可以覆盖模型管理类中的 save_model 方法。

管理员.py

class YouModelAdmin(admin.ModelAdmin):
  ##
  def save_model(self, request, obj, form, change):
        obj.ip = request.get("get  ip address")
        obj.save()

推荐阅读