/ / ¿Cómo migro los cambios en Django cuando estoy desheredando un modelo? - python, django, django-modelos

¿Cómo migro los cambios en Django cuando estoy desheredando un modelo? - python, django, django-modelos

Si tengo dos modelos y uno hereda de otro y configuro la base de datos con migrar, etc. así:

class TemplateProduct(models.Model):
type = models.CharField(max_length=20)

class Product(TemplateProduct):
name = models.CharField(max_length=80)

Entonces, ¿cómo migraría la base de datos para hacer que el Producto no hereda de TemplateProduct? Digamos que solo quiero estos modelos en su lugar:

class TemplateProduct(models.Model):
type = models.CharField(max_length=20)

class Product(models.Model):
name = models.CharField(max_length=80)

Cuando intento migrar esto, obtengo el siguiente error:

django.db.utils.ProgrammingError: column "templateproduct_ptr_id" of relation "product_product" does not exist

Y luego, cuando elimino la eliminación "templateproduct_ptr_id" de la migración, aparece el siguiente error:

django.core.exceptions.FieldError: Local field u"id" in class "Product" clashes with field of similar name from base class "TemplateProduct"

Como dice el título: ¿cómo migro los cambios en Django cuando no estoy heredando un modelo?

Respuestas

0 para la respuesta № 1

Así que mi solución fue eliminar ambos modelos. Entonces python manage.py makemigrations --merge, luego agregué los modelos de la forma en que los quería, finalmente corriendo python manage.py makemigrations --merge de nuevo para agregar los modelos de nuevo en.

Puede que esta no sea la solución más elegante pero funcionó.