sqlmigrate new migrations makemigrations inconsistent force fake exceptions django django-models django-migrations

django - new - ValueError: el modelo relacionado u''app.model ''no se puede resolver



migrate new model django (4)

Acabo de recibir el mismo error, pero en referencia a un modelo que se declaró como parte de la misma migración. Resultó que las primeras migrations.CreateModel(...) referían a un modelo aún no declarado. Moví manualmente esto debajo de la declaración del modelo referido y luego todo funcionó bien.

Tengo dos aplicaciones ( ook y eek dicen) y quiero usar una clave externa para un modelo en ook de un modelo en eek . Ambos están en INSTALLED_APPS con ook primero.

En ook.models.py , tengo:

class Fubar(models.Model): ...

En eek.models.py , tengo:

class monkey(models.Model): external = models.ForeignKey(''ook.Fubar'', blank=True, null=True) ...

La migración generada es:

class Migration(migrations.Migration): dependencies = [ (''eek'', ''0002_auto_20151029_1040''), ] operations = [ migrations.AlterField( model_name=''monkey'', name=''external'', field=models.ForeignKey(blank=True, to=''ook.Fubar'', null=True), ), ]

Cuando ejecuto la migración, me sale este error:

... 1595 raise ValueError(''Foreign Object from and to fields must be the same non-zero length'') 1596 if isinstance(self.rel.to, six.string_types): -> 1597 raise ValueError(''Related model %r cannot be resolved'' % self.rel.to) 1598 related_fields = [] 1599 for index in range(len(self.from_fields)): ValueError: Related model u''ook.Fubar'' cannot be resolved

¿Qué estoy haciendo mal?


Debido a que tiene ForeignKey en las operaciones, debe agregar un ook a las dependencies :

dependencies = [ (''ook'', ''__first__''), (''eek'', ''0002_auto_20151029_1040''), ]

Las migraciones de Django tienen dos valores "mágicos":

  • __first__ - obtener la primera migración del módulo
  • __latest__ - obtener la última migración del módulo

Descubrí que parece que este error aún no se solucionó cuando se desplaza hacia abajo.

Django ValueError: Modelo relacionado no se puede resolver Error

Estoy usando 1.11.7, están hablando de 1.9.3.

Funcionó todo en localhost, pero siempre fallaba en Heroku, así que probé todas las opciones / respuestas anteriores y nada funcionó.

Luego me di cuenta de que la base de datos localhost en Admin. Tuve 1 perfil creado (1 registro de DB), fui a Heroku y DB tiene 0 registros para la tabla de Perfil, así que agregué 1, presioné la migración, python manage.py migrate y todo fue DE ACUERDO.

Eso valida que no tuve que cambiar ninguna de esas migraciones manualmente para que todas funcionen.

Tal vez ayude a alguien.

migraciones

# -*- coding: utf-8 -*- # Generated by Django 1.11.7 on 2017-11-23 21:26 from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ (''blog'', ''0005_blog_author''), ] operations = [ migrations.AlterField( model_name=''blog'', name=''author'', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=''core.Profile''), ), ]


Encontré este error al intentar usar un modelo secundario de un modelo base como una clave externa. Tiene sentido que no funcionó porque no hay un campo de identificación en el modelo secundario. Mi solución fue usar el padre en la clave. Desafortunadamente esto no fue inmediatamente intuitivo y me retrasó un par de horas.