Python 在Django代码中,在哪里放置代码断开信号并进行猴子修补?
我正在为Django 2.2开发自定义授权后端。我不希望django为用户更新Python 在Django代码中,在哪里放置代码断开信号并进行猴子修补?,python,django,monkeypatching,django-signals,Python,Django,Monkeypatching,Django Signals,我正在为Django 2.2开发自定义授权后端。我不希望django为用户更新last\u login,所以我想断开signaluser\u logged\u触发update\u last\u login 我还必须在SimpleJWT库中进行monkey补丁,将用户更改为指向其他用户模型 放置此代码的最佳位置是哪里?现在,我已经添加了CoreConfig.ready方法,它可以工作,但是它是这个逻辑的好地方吗 从django.apps导入AppConfig 类CoreConfig(AppConf
last\u login
,所以我想断开signaluser\u logged\u
触发update\u last\u login
我还必须在SimpleJWT库中进行monkey补丁,将用户更改为指向其他用户模型
放置此代码的最佳位置是哪里?现在,我已经添加了CoreConfig.ready
方法,它可以工作,但是它是这个逻辑的好地方吗
从django.apps导入AppConfig
类CoreConfig(AppConfig):
名称='核心'
def就绪(自我):
从django.contrib.auth导入已登录的用户
从django.contrib.auth.models导入更新\上次登录
用户\u已登录。断开连接(更新\u上次登录,调度\u uid='update\u上次登录〕
导入rest\u framework\u simplejwt.state
rest\u framework\u simplejwt.state.User=OtherUserModel
我会说是的,但我认为这里没有明确的对错,关于连接信号,Django文档说明如下:
严格地说,信号处理和注册码都可以使用
任何你喜欢的地方,尽管建议避免
要最小化的应用程序根模块及其模型模块
导入代码的副作用
在实践中,信号处理程序通常在信号中定义
与之相关的应用程序的子模块。信号接收器是
在应用程序配置的ready()方法中连接
班如果您使用的是receiver()decorator,只需导入
信号子模块内部就绪()
我的意见是,如果建议的连接信号的方法是在您的AppConfig
的ready()
方法中进行连接,那么断开信号连接和相关的monkeypatching也应该在该方法中进行
我经常做的是: