2

我写了一个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?我的对象还没有保存吗?

4

2 回答 2

1

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

于 2013-07-31T09:53:33.697 回答
0

这个 LogEntry 是否保存在其他地方?因为您试图在保存后检索日志条目,但这些日志仅在使用管理员时自动创建。如果您不使用它,这些日志很可能没有被保存。您可以使用此 post_save 信号首先创建这些条目。

于 2020-06-15T19:03:42.650 回答