Comment by WesleyJohnson
2 months ago
manage.py makemigrations myapp --empty --name add_some_view
(in the migration file)
operations=[migrations.RunSQL("Create View some_view AS ....", "DROP VIEW IF EXISTS...."]
(in your models.py)
class SomeView(models.Model):
class Meta:
db_table = 'some_view'
managed = False
manage.py makemigrations myapp --name add_some_view_model
An extremely common thing to do. Also great with materialized views. I bet it's documented somewhere in Django's docs.