복붙노트

[PYTHON] Django 1.8 이상을 채우는 동안 "모델이 아직로드되지 않았습니다"오류가 발생했습니다.

PYTHON

Django 1.8 이상을 채우는 동안 "모델이 아직로드되지 않았습니다"오류가 발생했습니다.

이 코드를 사용하여 데이터베이스를 채우는 중입니다.

import os
def populate():
    python_cat = add_cat('Python')

    add_page(cat=python_cat, 
    title="Official Python Tutorial",
    url="http://docs.python.org/2/tutorial/")

    add_page(cat=python_cat,
    title="How to Think like a Computer Scientist",
    url="http://www.greenteapress.com/thinkpython/")

    add_page(cat=python_cat,
    title="Learn Python in 10 minutes",
    url="http://www.korokithakis.net/tutorials/python/")

    django_cat = add_cat(name="Django")

    add_page(cat=django_cat,
    title="Official Django Tutorial",
    url="http://djangoproject.com/en/1.5/intro/tutorial01/")

    add_page(cat=django_cat,
    title="Django Rocks",
    url="http://www.djangorocks.com/")

    add_page(cat=django_cat,
    title="How to Tango with Django",
    url="htttp://www.tangowithdjango.com/")

    frame_cat = add_cat(name="Other Frameworks")

    add_page(cat=frame_cat, 
    title="Bottle",
    url="http://bottlepy.org/docs/dev/")

    add_page(cat=frame_cat, 
    title="Flask",
    url="http://flask.pocoo.org")

    # Print out what we have added to the user. 
    for c in Category.objects.all():
        for p in Page.objects.filter(category=c):
            print "- {0} - {1}".format(str(c), str(p))

def add_page(cat, title, url, views=0):
    p = Page.objects.get_or_create(category=cat, title=title, url=url, views=views)[0]
    return p

def add_cat(name):
    c = Category.objects.get_or_create(name=name)
    return c

if __name__ == '__main__':
    print "Starting Rango population script..."
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'p.settings')
    from rango.models import Category, Page
    populate()

실행 중

python c:\python27\p\populate_rango.py

그것은 오류를 준다 :

Staring Rango population script...
Traceback (most recent call last):
File "c:\python27\p\populate_rango.py", line 59, in <module>
populate()
File "c:\python27\p\populate_rango.py", line 4, in populate
python_cat = add_cat('Python')
File "c:\python27\p\populate_rango.py", line 52, in add_cat
c = Category.objects.get_or_create(name=name)
File "C:\Python27\Lib\site-packages\django\db\models\manager.py", li
manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Python27\Lib\site-packages\django\db\models\query.py", line
et_or_create
return self.get(**lookup), False
File "C:\Python27\Lib\site-packages\django\db\models\query.py", line
clone = self.filter(*args, **kwargs)
File "C:\Python27\Lib\site-packages\django\db\models\query.py", line
ilter
return self._filter_or_exclude(False, *args, **kwargs)
File "C:\Python27\Lib\site-packages\django\db\models\query.py", line
filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "C:\Python27\Lib\site-packages\django\db\models\sql\query.py",
in add_q
clause, require_inner = self._add_q(where_part, self.used_aliases)
File "C:\Python27\Lib\site-packages\django\db\models\sql\query.py",
in _add_q
current_negated=current_negated, connector=connector)
File "C:\Python27\Lib\site-packages\django\db\models\sql\query.py",
in build_filter
lookups, parts, reffed_aggregate = self.solve_lookup_type(arg)
File "C:\Python27\Lib\site-packages\django\db\models\sql\query.py",
in solve_lookup_type
_, field, _, lookup_parts = self.names_to_path(lookup_splitted, se
a())
File "C:\Python27\Lib\site-packages\django\db\models\sql\query.py",
in names_to_path
field, model, direct, m2m = opts.get_field_by_name(name)
File "C:\Python27\Lib\site-packages\django\db\models\options.py", li
get_field_by_name
cache = self.init_name_map()
File "C:\Python27\Lib\site-packages\django\db\models\options.py", li
init_name_map
for f, model in self.get_all_related_m2m_objects_with_model():
File "C:\Python27\Lib\site-packages\django\db\models\options.py", li
get_all_related_m2m_objects_with_model
cache = self._fill_related_many_to_many_cache()
File "C:\Python27\Lib\site-packages\django\db\models\options.py", li
_fill_related_many_to_many_cache
for klass in self.apps.get_models():
File "C:\Python27\Lib\site-packages\django\utils\lru_cache.py", line
rapper
result = user_function(*args, **kwds)
File "C:\Python27\Lib\site-packages\django\apps\registry.py", line 1
_models
*self.check_models_ready()
File "C:\Python27\Lib\site-packages\django\apps\registry.py", line 1
ck_models_ready
raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.*

나머지 파일은 괜찮지 만이 오류가 발생합니다. 나는 Tango에서 Django 책으로 튜토리얼을 따라 가고 있지만 책은 Django 1.5.4를 참조하고 Django 1.8을 사용하고 있으므로 누구도 나를 도와 줄 수 있습니까?

해결법

  1. ==============================

    1.나는 Django 1.7rc2와 동일한 예외를 가지고 있었다. 해결책은 프로그램 시작시 다음 줄을 추가하는 것이 었습니다.

    나는 Django 1.7rc2와 동일한 예외를 가지고 있었다. 해결책은 프로그램 시작시 다음 줄을 추가하는 것이 었습니다.

    import django
    django.setup()
    

    업데이트 : 이제 Django 1.8에 대해 설명합니다.

  2. ==============================

    2.이 오류가 발생했습니다. 우리 프로젝트는 Django 1.4부터 시작하여 1.5로, 그 다음 1.7로 진행되었습니다. 우리의 wsgi.py는 다음과 같습니다 :

    이 오류가 발생했습니다. 우리 프로젝트는 Django 1.4부터 시작하여 1.5로, 그 다음 1.7로 진행되었습니다. 우리의 wsgi.py는 다음과 같습니다 :

    import os
    import sys
    
    from django.core.handlers.wsgi import WSGIHandler
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
    application = WSGIHandler()
    

    1.7 스타일 WSGI 핸들러로 업데이트했을 때 :

    import os
    import sys
    
    from django.core.wsgi import get_wsgi_application
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
    application = get_wsgi_application()
    

    모든 것이 지금 작동합니다.

  3. ==============================

    3.장고 1.9.x에 대한 잘 :

    장고 1.9.x에 대한 잘 :

    populate_rango.py:

    import os
    import sys
    
    from django.core.wsgi import get_wsgi_application
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'tango_with_django_project.settings'
    application = get_wsgi_application()
    
    def populate():
        python_cat = add_cat('Python')
    
        add_page(cat=python_cat,
             title="Official Python Tutorial",
             url="http://docs.python.org/2/tutorial/")
    
        add_page(cat=python_cat,
            title="How to Think like a Computer Scientist",
            url="http://www.greenteapress.com/thinkpython/")
    
        add_page(cat=python_cat,
            title="Learn Python in 10 Minutes",
            url="http://www.korokithakis.net/tutorials/python/")
    
        django_cat = add_cat("Django")
    
        add_page(cat=django_cat,
            title="Official Django Tutorial",
            url="https://docs.djangoproject.com/en/1.5/intro/tutorial01/")
    
        add_page(cat=django_cat,
            title="Django Rocks",
            url="http://www.djangorocks.com/")
    
        add_page(cat=django_cat,
            title="How to Tango with Django",
            url="http://www.tangowithdjango.com/")
    
        frame_cat = add_cat("Other Frameworks")
    
        add_page(cat=frame_cat,
            title="Bottle",
            url="http://bottlepy.org/docs/dev/")
    
        add_page(cat=frame_cat,
            title="Flask",
            url="http://flask.pocoo.org")
    
        #Print out what we have added to the user.
        for c in Category.objects.all():
            for p in Page.objects.filter(category=c):
                print ("- {0} - {1}".format(str(c), str(p)))
    
    def add_page(cat, title, url, views=0):
        p = Page.objects.get_or_create(category=cat, title=title, url=url, views=views)[0]
        return p
    
    def add_cat(name):
        c = Category.objects.get_or_create(name=name)[0]
        return c
    
    # Start execution here!
    if __name__ == '__main__':
        print ("Starting Rango population script...")
        os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tango_with_django_project.settings')
        from rango.models import Category, Page
        populate()
    
  4. from https://stackoverflow.com/questions/25244631/models-arent-loaded-yet-error-while-populating-in-django-1-8-or-later by cc-by-sa and MIT license