在Django应用中记录事件

5 投票
2 回答
2775 浏览
提问于 2025-04-18 07:46

我需要在我的Django 1.4应用程序中记录一些业务事件。例如,当用户发送推荐邮件或者用户进行购买时。还有其他类似的事件。这些事件日志将用于一些商业分析。有没有什么好的方法可以在电子商务应用中做到这一点?可能是某种服务或者Django模块?我以前从没开发过这样的系统,需要一些建议。

2 个回答

2

有一个内置的日志记录应用。你可以查看1.4版本的文档,了解更多信息:https://docs.djangoproject.com/en/1.4/topics/logging/

6

我知道你在说使用内置功能,但我想提供另一个选择。我通常会用一个模型来存储一些电商页面的日志记录,比如:

class MyLog(models.Model):
    LOG_ACTIONS = (
        ('login', 'User logged in'),
        ('delete_object', 'User delete object'),
        ('create_object', 'User create object'),
        ('buy_object', 'User buy object'),
        #   ...     ...     ...
        # Whatever you need here
    )
    user = models.ForeignKey(User)
    action = models.CharField(max_length=20, default='login', choices=LOG_ACTIONS, verbose_name= 'action')
    date = models.DateTimeField(auto_now_add=True, verbose_name='date')

    class Meta:
        ordering = ['-dt']
        verbose_name = 'Action log'
        verbose_name_plural = 'Actions log'

这个例子是简化过的,你可以根据需要添加很多字段和日志记录。

所以当你进行任何需要记录的操作时,只需创建一个 MyLog 对象。当你想查看所有日志记录时,只需获取 MyLog 对象,你可以根据日期、用户或你放进去的任何字段来筛选。

希望这对你有帮助!

撰写回答