2015-02-12 5 views
8

Sto provando a creare un nuovo modello con Django, ma continuo a correre nell'errore Lookup failed for model referenced by field help.HelpDefinition.org: account.Organization. Organization è stato importato. Puoi vedere il modello qui sotto.Django 1.7.3 - Ricerca fallita per modello referenziato dal campo

models.py

org = models.ForeignKey(Organization, unique=True) 
help_type = models.CharField(max_length=255, choices=HELP_CHOICES) 
help_content = models.TextField(blank=True) 

Questo modello è stato migrato con successo in precedenza. Ho lasciato cadere il tavolo tramite psql in Postgres in modo che potesse essere ricreato.

risposta

17

Accade quando si cambiano gli oggetti di destinazione in relazione. Anche se hanno lo stesso nome e campi, non sono gli stessi oggetti. Ho avuto lo stesso problema e ho eliminato tutte le precedenti migrazioni dalla cartella migrations.

+1

Questo suona strano, ma è in effetti il ​​modo per farlo. Le modifiche ai nomi dei modelli sembrano qualcosa che le migrazioni di Django non supportano ancora (o non supportate ancora nella versione 1.7.3). –

+0

Se è necessario modificare il nome di un modello, è possibile creare una migrazione vuota e utilizzare la classe ['RenameModel'] (https://docs.djangoproject.com/en/1.8/ref/migration-operations/#renamemodel) . – warownia1

2

È inoltre possibile aggiungere come dipendenza alla migrazione l'ultima migrazione dall'app dell'oggetto. Questo ha fatto il trucco per me.

class Migration(migrations.Migration): 

dependencies = [ 
    (<app>, <last_migration_filename>), 
... 
+0

Ho anche risolto l'errore "Ricerca fallita per modello referenziato da campo ..." aggiungendo un'altra migrazione dell'app nelle dipendenze. – baxeico