2014-12-01 7 views
5

Ho riscontrato un problema con Django 1.7 relativo al nuovo registro app, in una particolare distribuzione. Solitamente eliminerei l'istanza e la ricrearò, tuttavia continua a verificarsi quando ho distrutto l'istanza.Django 1.7 Le etichette delle applicazioni non sono univoci, duplicati pippo

È sempre l'applicazione prodotti a causare questo errore e ho utilizzato un file app.py per cambiare l'etichetta in sc_products, tuttavia ora ciò che sc_products è già definito.

In questo particolare esempio stavo tentando di migrare l'app.

Running migrations: 
    Applying sc_products.0001_initial...Traceback (most recent call last): 
    File "manage.py", line 9, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line 
    utility.execute() 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute 
    output = self.handle(*args, **options) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 160, in handle 
    executor.migrate(targets, plan, fake=options.get("fake", False)) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 63, in migrate 
    self.apply_migration(migration, fake=fake) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 91, in apply_migration 
    if self.detect_soft_applied(migration): 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 135, in detect_soft_applied 
    apps = project_state.render() 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/db/migrations/state.py", line 57, in render 
    self.apps = Apps([AppConfigStub(label) for label in sorted(self.real_apps + list(app_labels))]) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/apps/registry.py", line 56, in __init__ 
    self.populate(installed_apps) 
    File "/home/savingschampion/.virtualenvs/savings_champion/local/lib/python2.7/site-packages/django/apps/registry.py", line 89, in populate 
    "duplicates: %s" % app_config.label) 
django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: sc_products 

sto già facendo la seguente risposta da therefromhere:

How to resolve "django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: foo" in Django 1.7?

risposta

2

Ho avuto lo stesso problema e ho appena inciampato su questo. Dopo aver debugato il Django per un po ', potrei avere la risposta tanto attesa per te.

Questo probabilmente accade perché la vostra applicazione finisce per essere trattato come sia non migrati e migrato allo stesso tempo (producendo così lo stesso errore, anche quando si cambia l'etichetta app), e questo a sua volta accade perché la vostra applicazione ha sia migrazioni vecchio stile (sud) e migrazioni new-style (django).

Il modo migliore e più semplice per affrontare questo è quello di iniziare fresco. Elimina tutte le migrazioni numerate (ad esempio rm migrations/0???_*.py*) e chiama il numero manage.py makemigrations nuovamente, assicurandoti che le migrazioni di django siano lasciate e siano aggiornate.

1

Controlla il tuo INSTALLED_APPS. Ho fatto accidentalmente la stessa app elencata due volte e ho avuto un errore simile.

Problemi correlati