在post_save信号django中捕获logentry历史

时间:2013-07-31 09:08:32

标签: python django logging

我写了一个post_save信号,如下所示:

def send_something(sender, instance, **kwargs):
    user = LogEntry.objects.get(
            content_type_id = ContentType.objects.get_for_model(instance).pk,
             object_id      =  instance.pk,
             action_flag    =   1
             ).user

post_save.connect(send_something, sender=ClassName)

但是当我尝试从管理员添加DoesNotExist LogEntry matching query does not exist对象时,我得到ClassName

为什么会这样?为什么历史记录在post_save时无法使用?我的对象不是保存了吗?

2 个答案:

答案 0 :(得分:1)

self.pk似乎是您的问题,请尝试将其替换为instance.pk

答案 1 :(得分:0)

此LogEntry是否保存在其他地方? 因为您尝试在保存帖子后检索日志条目,但是这些登录条目仅在使用管理员时自动创建。如果您不使用它,则可能是未保存这些日志。您可以使用此post_save信号先创建这些条目。