【问题标题】:Django. Python. How to get current user's activity log?姜戈。 Python。如何获取当前用户的活动日志?
【发布时间】:2015-04-29 07:12:51
【问题描述】:

我需要将当前用户的整个活动日志传递到一个 html 页面,但我似乎找不到任何有用的解决方案。

有可能吗?如果是,请以正确的方式指导我?

提前致谢!

更新:

我找到了一个使用 get() 调用 django 的 LogEntry 模型的解决方案,但我不知道什么是适当的参数来做同样的事情。

又一个更新:

我正在寻找一种方法来从 django 的日志条目中访问特定用户的活动日志,而不将其保存到任何数据库中

【问题讨论】:

标签: python django python-3.x


【解决方案1】:

看看下面列出的.....希望它会有所帮助::

    lets example::
    Create Two Field  in Models:


    last_activity_ip = models.IPAddressField()
    last_activity_date = models.DateTimeField(default = datetime(1960, 1, 1))
    user = models.OneToOneField(User, primary_key=True)

由于 User 和 UserActivity 模型现在是一对一相关的,我们现在可以输入:

像这样运行查询:

a = User.objects.get(username__exact='mpcabd')
print a.useractivity.last_activity_ip

b = UserActivity.objects.get(user=a)
print b.user.username

** To track the activity use this **

    activity = None
    try:
        activity = request.user.useractivity
    except:
        activity = UserActivity()
        activity.user = request.user
        activity.last_activity_date = datetime.now()
        activity.last_activity_ip = request.META['REMOTE_ADDR']
        activity.save()
        return
    activity.last_activity_date = datetime.now()
    activity.last_activity_ip = request.META['REMOTE_ADDR']
    activity.save()

【讨论】:

  • 您能告诉我代码中的“用户活动”是什么吗?另外,我需要获取用户的创建/删除活动,而不是 ip 和访问时间。
  • useractivity 基本上是 OneToOne 字段的名称 ....我忘了提到...不用担心...您可以使用实例直接访问 last_activity_ip... .
  • last_activity_ip 是 UserActivity(MODEL) 的字段
【解决方案2】:

这个问题没有简短的答案,你可以在主 django 项目旁边使用 sentry 项目。下面的链接可以帮助你:

https://sentry.readthedocs.org/en/latest/

【讨论】:

  • 我不期待代码中的答案,而只是这样做的方式。提供的链接有助于处理我不打算做的日志记录
  • Sentry 是一个强大的日志系统,您可以配置您的项目以将您的项目日志注册到 Sentry,在第一个链接中您可以看到一些关于将 django 项目连接到 Sentry 的配置...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 2011-01-31
  • 2011-10-15
  • 2014-10-05
  • 2020-10-18
  • 1970-01-01
  • 2020-08-17
相关资源
最近更新 更多