2015-04-10 15 views
9

Django 1.7 'django.contrib.admin' uygulaması INSTALLED_APPS listelenen"Django geçişini çalıştıran" admin "etiketli yüklü uygulama bulunamadı. Uygulama doğru

bir datamigration sırasında admin.LogEntry nesneleri kullanmaya çalışıyorum yüklenir.

>>> from django.apps import apps 
>>> apps.get_model('admin', 'LogEntry') 
django.contrib.admin.models.LogEntry 

Ama göç sırasında, başarısız:

kabuk üzerinde

, çalışıyor

def do_it(apps, schema_editor): 
    LogEntry = apps.get_model('admin', 'LogEntry') 

böyle Başarısız:

django-admin migrate 
(...) 
LookupError: No installed app with label 'admin'. 

bir hata ayıklayıcı kullanarak, bende 'admin' yüklenmemiş:

ipdb> apps.get_apps() 
[] 
ipdb> apps.all_models.keys() 
['website', 'google', 'allauth', 'twitter', 'busca', 'conteudo', 'django_mobile', 'django_filters', 'videocenter', 'tinymce', 'oferta', 'programacaotv', 'contenttypes', 'suit', 'haystack', 'destaque', 'filer', 'galeria', 'auth', 'facebook', 'paintstore', 'critica', 'disqus', 'fichas', 'omeletop', 'autocomplete_light', 'modelsv1', 'temas', 'django_extensions', 'adv_cache_tag', 'taggit', 'social', 'personalidade'] 

NEDEN ??

+2

'django-admin' komutları çalıştırmayın - ayarlarınız modülü setleri' manage.py' kullanmak açıkça. –

+0

"manage.py" kullanarak denendi. Aynı sonuç. – alanjds

+0

... neyse, DJANGO_SETTINGS_MODULE çevre üzerinde doğru ayarlanmış – alanjds

cevap

9

Bunun nedeni tam olarak bilmiyorum. Kaynak koduna girmek zorunda kalacaklar. ancak şimdilik bir bağımlılık, bağımlılara ('admin', 'name_of_last_migration_in_admin_app') eklenir ve geçişler iyi gider.

+0

Çapraz uygulama geçişi için, açık bağımlılık gerektirir. Aksi halde, boş veritabanında alfabetik sırayla çalışan geçişler başarısız olur. –

1

Django doc açıkça yapar:

When writing a RunPython function that uses models from apps other than the one in which the migration is located, the migration’s dependencies attribute should include the latest migration of each app that is involved, otherwise you may get an error similar to: LookupError: No installed app with label 'myappname' when you try to retrieve the model in the RunPython function using apps.get_model().

Kod örnek:

class Migration(migrations.Migration): 

    dependencies = [ 
     ('app1', '0001_initial'), 
     # added dependency to enable using models from app2 in move_m1 
     ('app2', '0004_foobar'), 
    ] 

    operations = [ 
     migrations.RunPython(move_m1), 
    ]