首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django中存储用户活动

在Django中存储用户活动
EN

Stack Overflow用户
提问于 2013-02-21 19:46:09
回答 2查看 21.3K关注 0票数 19

我希望存储用户的活动,但我不确定将其存储在哪里。我不认为数据库是一个选择,因为它将非常大。我想知道像facebook,dropbox这样的网站是如何记住特定用户的所有活动的。它不能存储在会话中,因为它不是特定于会话的,而是特定于用户的。

请帮我提一下你的建议。

EN

回答 2

Stack Overflow用户

发布于 2013-02-21 20:04:03

通常情况下,如果您愿意,您可以使用Django Admin Logs来执行此类活动。

通常,Django会跟踪管理操作,如创建、更新或删除现有记录。它的结构如下:

代码语言:javascript
复制
from django.contrib.admin.models import LogEntry

LogEntry.objects.log_action(
                            user_id = ...,
                            content_type_id = ...,
                            object_id = ...,
                            object_repr = ....,
                            change_message = ...,
                            action_flag = ...
                           )

我在我的系统中使用它作为记录器,并跟踪每一个动作。通常,Django记录在管理表单上执行的插入、更新或删除操作,而我记录我手写的视图和表单操作。此外,您还可以使用signals捕获用户操作,例如登录/注销。

我定义了新的操作标志。Django使用3个标志:1个用于插入,2个用于更新,3个用于删除。我用我的动作标志扩展了这个列表。

正如我所说的,使用它的好处是,您不需要处理默认的Django Admin表单和使用这些表单执行的任何操作。

票数 10
EN

Stack Overflow用户

发布于 2013-02-22 06:59:32

您可能想看看django-activity-stream,它是activity streams spec的一个实现。这将在数据库中存储操作列表,并允许以下用户/实体提供类似于Facebook的内容(如果这是您感兴趣的内容)。

然而,正如您所提到的,这最终可能会产生大量的数据集,这对于传统的单一数据库方法来说可能有点多。我不确定像Twitter这样的网站是如何处理它的,但除非您计划快速扩展,否则标准数据库方法可能会持续一段时间。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15001444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档