← Back to context

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.