python - Django 何时加载应用程序?
问题描述
在处理信号时,我发现 Django 直到应用程序的 __init__.py 运行后的某个时间点才加载应用程序,这是有道理的。但是,Django 什么时候加载应用程序?这是将我带到这里的代码,它是一个名为的应用程序的所有部分imt_prod
:
__init__.py
import imt_prod.signals
信号.py
from django.contrib.auth.signals import user_logged_in
# This produces 'django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.'
from imt_prod.models import LoginHistory
def recordLogon(sender, user, request, **kwargs):
from imt_prod.models import LoginHistory # This does not
LoginHistory.objects.get_or_create(User=user)
user_logged_in.connect(recordLogon)
模型.py
from django.contrib.auth.models import User
from django.db import models
class LoginHistory(models.Model):
User = models.OneToOneField(User, null=False, blank=False, on_delete=models.SET("USER DELETED"), verbose_name="User")
date = models.DateField(default=date.today, null=False, blank=False, verbose_name="Logon Date")
解决方案
推荐阅读
- javascript - element.focus() 在 Firefox 和 Edge 与 Chrome 中有所不同
- reactjs - 如何使用 React Navigation 5 在 Action Creators 中导航到屏幕
- python - 如何使用上次检查时间而不是日期搜索邮箱?
- java - 从 Hibernate Optimistic Locking 异常中恢复
- android - 购买付费应用时是否可以发送账户信息?
- javascript - 在 React 中使用异步从 API 恢复数据时遇到问题
- firebase - 必须将非空字符串提供给 Text 小部件。在 Flutter 中显示数据!= null'
- reactjs - 在反应中设置状态问题
- html - CSS:在手机视图中图像尺寸变大
- python - 程序没有完全终止