gpt4 book ai didi

python - 如何在django post_save监听器中获取请求对象

转载 作者:太空宇宙 更新时间:2023-11-04 08:54:34 25 4
gpt4 key购买 nike

@receiver(post_save, sender=StudentActionModel)
def save_student_activity(sender, instance, **kwargs):

# update the model object with some info from the request object
instance.came_from = request.REQUEST.get('request_came_from')
instance.save()

用户故事:用户点击某处,我们正在记录他的操作。我们能否以某种方式访问​​原始请求对象,以便我们能够从中提取一些所需信息?

陷阱:我们不能更改 StudentActionModel 代码,我们正在为原始 Django 应用程序编写插件,不能更改任何原始代码。我们只是为“post_save”信号定义一个监听器,我们需要来自原始请求对象的一段数据。

最佳答案

您不能假设只有 View 代码会调用 StudentActionModel.save() - 它可以由管理命令或任何脚本调用 - 这就是为什么 Model.save() post_save()或任何django.db` 信号都无法获得请求。长话短说:您必须在 View (或自定义中间件)中处理此问题,而不是在 orm 级别。

关于python - 如何在django post_save监听器中获取请求对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com