当前位置: 首页 > 面试题库 >

在post_save信号中访问用户的请求

章飞章
2023-03-14
问题内容

我在我的项目中完成了以下post_save信号。

from django.db.models.signals import post_save
from django.contrib.auth.models import User

# CORE - SIGNALS
# Core Signals will operate based on post

def after_save_handler_attr_audit_obj(sender, **kwargs):
    print User.get_profile()

    if hasattr(kwargs['instance'], 'audit_obj'):
        if kwargs['created']:
            kwargs['instance'].audit_obj.create(operation="INSERT", operation_by=**USER.ID**).save()
        else:
            kwargs['instance'].audit_obj.create(operation="UPDATE").save()


# Connect the handler with the post save signal - Django 1.2
post_save.connect(after_save_handler_attr_audit_obj, dispatch_uid="core.models.audit.new")

在operation_by列中,我想获取user_id并将其存储。知道怎么做吗?


问题答案:

不能做 当前用户只能通过请求使用,而在使用纯模型功能时则不可用。以某种方式访问​​视图中的用户。



 类似资料:
  • 问题内容: 我有一个Django模型,我想在保存时或保存后修改对象权限。我已经尝试了几种解决方案,并且信号似乎是我想要做的最好的选择: 在这种情况下,当创建一个Project时,信号将触发,并且我看到,但是该字段为空列表。 保存后如何访问保存的数据? 问题答案: 你不会的 M2M是在实例保存后保存的,因此在所有m2m更新中都不会有任何记录。进一步的问题(即使你解决了这个问题)是,你仍在事务中,并且

  • 问题内容: 我有一个关于django的问题。 我这里有许多对多模型 对于创建的1个购物车对象,我可以插入尽可能多的新TransactionDetail对象(产品和金额)。我的问题是。如何实现触发器?我想要的是每当创建交易明细时,我希望产品的存货数量减去交易明细中的数量。 我已经阅读了有关post_save()的信息,但不确定如何实现。也许像这样 什么时候: 问题答案: 如果你真的想使用信号来实现这

  • 问题内容: 我有一个“喜欢”功能,就像社交网络“喜欢”或“竖起大拇指”功能一样;用户单击星号/心形/任何内容以将内容标记为喜欢。它是用ajax完成的,并且必须快速。这里唯一的问题是,由于某些原因,我必须为每个“赞”执行一些任务,而我发现它们是在“赞”视图中直接编码的,这使其运行缓慢。我正在考虑使用信号来使这些任务的执行异步,以便视图可以立即将json发送回javascript,而无需等待任务完成。

  • 问题内容: 在执行ModelForm时,我想根据当前用户是否为超级用户执行不同类型的验证检查。如何访问当前的请求用户? 问题答案: 您可以将用户对象作为额外的参数传递给表单构造函数。 例如 构造函数将如下所示: 然后根据需要在clean_XX表单中使用user

  • 问题内容: 我在Django应用程序中有一个用户注册表格,该表格收集用户尝试注册时的其他数据,例如地址,城市,国家/地区,电话号码等。 该数据通过信号保存在“帐户”模型类中。用户创建过程如下所示: 在这里,当用户发布表单时将调用该函数,在该函数下,我可以获得POST数据,我想要的是将该数据传递给方法,以便其填充模型中的字段。 现在,我确实看到了在数据库中创建的对象,但是除用户字段之外的所有字段均为

  • 问题内容: 我试图将“信息”对象连接到许多“客户”(请参见下面的代码) 更新一个信息对象后,我想向与该信息连接的每个客户发送电子邮件。 但是,当我记录信号接收到的sold_to字段时,在保存之前,我总是会得到类似的数据。 我猜这是因为它的ManyToManyField和数据存储在单独的表中,但是在更新所有关系之后不应该调用post_save信号吗? 有人提出解决方案的建议吗? 编辑:#django