首页 > 解决方案 > 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")

标签: pythondjango

解决方案


推荐阅读