我刚刚使用带有 postgres 9.4 和 django 1.8 的视图实现了一个模型。
我创建了这样的自定义迁移类:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('myapp', '0002_previousdependency'),
]
sql = """
create VIEW myapp_myview as
select your view here
"""
operations = [
migrations.RunSQL("drop view if exists myapp_myview;"),
migrations.RunSQL(sql)
]
我像往常一样编写模型。它适用于我的目的。
注意- 当我运行 makemigrations 时,为模型创建了一个新的迁移文件,我手动删除了该文件。
完全公开-我的视图是只读的,因为我使用的是从 jsonb 数据类型派生的视图并且没有编写 ON UPDATE INSTEAD 规则。