Tengo un modelo con managed = False.Cómo crear una tabla durante las pruebas de Django con managed = False
class SampleModel(models.Model):
apple = models.CharField(max_length=30)
orange = models.CharField(max_length=30)
class Meta:
managed = False
que tienen una prueba de unidad que crea un SampleModel, sin embargo cuando funciono con la prueba me sale:
DatabaseError: no such table: SAMPLE_SAMPLE_MODEL
Los documentos django - https://docs.djangoproject.com/en/dev/ref/models/options/#managed documenta lo siguiente:
Para las pruebas involucrando modelos con managed = False, depende de usted asegurarse de que se creen las tablas correctas como parte de la configuración de la prueba.
¿Cómo puedo "crear" las tablas durante la configuración de la prueba? O, como alternativa, ¿cómo puedo hacerlo de modo que cuando estoy ejecutando pruebas, este modelo tenga "managed = True" durante la prueba?
En la aplicación real, este modelo está respaldado por una vista en la base de datos. Sin embargo, durante el examen, me gustaría tratar esto como una tabla y poder insertar datos de prueba allí.
No funciona para Django 1.11 (ya que usará las migraciones para crear la base de datos de prueba, y siguiendo la definición de su modelo establecerá 'managed = False'). La solución propuesta en https://stackoverflow.com/a/37060122/462655 funciona para Django 1.11 – msonsona
FWIW Esto tampoco funciona en Django 1.10.7 (y posiblemente toda la serie 1.10.x, pero no estoy seguro) . –
Hay disponible una actualización de la idea original del corredor de pruebas en https://dev.to/patrnk/testing-against-unmanaged-models-in-django – shadi