当前位置: 首页 > 知识库问答 >
问题:

运行时错误:应用程序注册表尚未就绪

萧晔
2023-03-14

我试图创建一个脚本,用测试用户填充数据库。我不熟悉Django和Python。我不断得到:

Runtime error: App registry isn't ready yet. 

以下是输出和错误:

starting population script
Traceback (most recent call last):
File "populate.py", line 32, in <module>
populate()
File "populate.py", line 22, in populate
i.save()
File "c:\Python27\lib\site-packages\django-1.7a2-py2.7.egg\django\db\models\base.py",    line 603, in save
force_update=force_update, update_fields=update_fields)
...
...
...    
File "c:\Python27\lib\site-packages\django-1.7a2-py2.7.egg\django\apps\registry.py", line   156, in get_models
self.check_ready()
File "c:\Python27\lib\site-packages\django-1.7a2-py2.7.egg\django\apps\registry.py",   line 119, in check_ready
raise RuntimeError("App registry isn't ready yet.")
RuntimeError: App registry isn't ready yet.

下面是代码:

import os
import datetime

def populate():
    freer = User.objects.create_user( 'joyyie', 'lolcats@gmail.com', 'e')
    cat = User.objects.create_user( 'steve', 'l2olcats@gmail.com', 'e')
    dog = User.objects.create_user( 'aasd', 'lo3lcats@gmail.com', 'ad')
    cow = User.objects.create_user( 'sadsfa', 'lol4cats@gmail.com', 't' )
    pig = User.objects.create_user( 'regibald', 'lolc5ats@gmail.com', '0')
    donkey = User.objects.create_user( 'turnip', 'lolca6ts@gmail.com', 'pop')
    human = User.objects.create_user( 'tutu', 'lolcat7s@gmail.com', 'pa')
    a = [freer,cat,dog,cow,pig,donkey,human]

    for i in a:
        i.first_name= 'jackee'
        i.is_superuser=True
        i.is_staff=False
        i.date_joined=datetime.datetime.today()
        i.last_login=datetime.datetime.today()

        i.save()


if __name__=='__main__':
    print "starting population script"
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'infosmos.settings')
    from django.conf import settings
    from django.db import models
    from django.contrib.auth.models import User
    populate()

有没有办法通过使用信号或其他方式强制用户配置文件创建等待注册表应用程序?

共有3个答案

赵正雅
2023-03-14

我发现,如果我运行填充通过manage.pyshell与可执行文件()命令,然后它运行正常。在我开始修改数据库或运行外部代码之前,一切都需要设置。谢谢Lanzz的提示。

子车超英
2023-03-14

根据Django的1.7发行说明,在“启动顺序”条款下,这是一种已知和预期的行为:

另一个常见的罪魁祸首是django.contrib.auth.get_user_model()。使用AUTH_USER_MODEL设置在导入时引用User模型。

这就应该奏效了

供参考:https://docs.djangoproject.com/en/dev/releases/1.7/#app-loading-changes

白芷阳
2023-03-14
import os

import django

[...]


if __name__ == '__main__':  
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')

    django.setup()
 类似资料:
  • 我有一个UWP应用程序,我想与另一个程序(有线广播)接口。Wirecast建议的方法是调用以下代码: 当我从UWP应用程序调用此代码时,我得到以下错误: 系统运行时。互操作服务。COMException:“使用CoCreateInstanceFromApp创建CLSID为{A416C15B-A073-4994-8DB5-87527A41B2FA}的COM组件实例失败,原因是以下错误:8004015

  • 我知道以前有人问过这个问题,但我找不到适合我的问题。我正在使用mongo为我的项目创建模式并创建路由,但由于某些原因,它一直给我一个错误。 扔新的猫鼬。错误。MissinSchemaError(名称);^MongooseError[MissinSchemaError]:模式尚未注册为模型“项目”。使用mongoose.model(名称,模式)在Mongoose.model(C:\用户\samib\

  • 我看到了其他相关问题,但对解决方案不满意。 我已经根据我的要求对上面的教程做了我自己的修改,像使用城市,国家实体而不是学生。 我的beans.xml是这样的 和CountryJDBCTemplate.java如下所示: 2013年12月11日下午1:06:02 org.springframework.context.support.classpathxmlapplicationcontext准备r

  • 错误如下: 02-11 13:24:31.561 526 2-5262/?E/AndroidRuntime:致命异常:main process:com.example.vicky.project,pid:5262 java.lang.runtimeException:无法启动活动ComponentInfo{com.example.vicky.project/com.example.vicky.pr

  • 我正在处理一些注册过程的Android应用程序(原生Android),使用AWS放大和Cognito用户池从这个链接https://aws-amplify.github.io/docs/android/authentication#signup。 我已经做了,直到放大添加验证和放大推送。我的原始文件夹中有配置文件。在实现注册功能后,我在尝试从我的应用程序注册时遇到以下错误: 2019-10-23

  • 问题内容: 我需要在Java应用程序中启动1-3个外部程序,这些程序具有用户定义的路径。我有几个要求: 如果程序已经在运行,我不希望其执行 我不希望任何程序从我的Java应用程序中夺走焦点 我不在乎其中任何一个是否无法启动。他们只需要默默地失败。 到目前为止,这是我想出的: 然后我再用其他两条路径重复3次。就像我期望的那样开始,并满足了我的第三个要求,但是在前两个条件上却失败了。 做这个的最好方式