有人能给我演示一个如何在Django中使用threadlocals的例子吗?

2024-10-16 20:46:03 发布

您现在位置:Python中文网/ 问答频道 /正文

实际上,我试图访问模型.py在我的一个应用程序中。我已经读过关于你不应该这样做的,以及你应该怎么做的视图.py等等,我要做的只是利用Django管理后端,意思是视图.py根本不用。在

这就是为什么我要找当地人。我看了很多与此相关的问题,我发现的是一个死链接:http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser

坦白地说,我很困惑,希望有人能给我一些关于如何使用threadlocals的信息,包括我需要添加到我的设置.py我需要做些什么文件。在


Tags: djangopy模型com视图应用程序http利用
1条回答
网友
1楼 · 发布于 2024-10-16 20:46:03

根据注释,如果您的Entry模型有一个User的外键,则在保存或删除模型的实例后,您不需要使用threadlocals来获取有关用户的所有信息。在

Signals子框架将为您提供所需的功能。例如,pre_delete可用于在删除对象之前发送电子邮件。post_save可以在创建或更新条目后发送。在

信号处理程序将接收触发该信号的对象的实例,您将能够访问用户对象,包括它的所有属性以发送电子邮件。虽然数据库中只存储用户的id,但是Django将允许您通过ForeignKey字段访问完整的对象。在

[编辑]

要在信号处理程序中获取对象实例,请从传递给该处理程序的kwargs中检索它:

def my_callback(sender, **kwargs):
    instance = kwargs.get('instance')
    # you can now reference instance.user
    # send email code here

相关问题 更多 >