我尝试从django创建数据库视图,而不是从现有数据库表中关联模型。我是django世界的新手,我不知道我该怎么做。任何人有任何想法从哪里开始寻求解决这个问题?也许这是不可能的,但你能看到任何替代解决方案吗?
我理解如何定义一个没有管理的模型,考虑managed=False
,就像我在django docs上找到的那样,但是如何在我的模型类中创建自定义的SQL视图?
类似的东西:
Class myModel(models.Model):
Object = models.raw("CREATE VIEW foo AS SELECT * FROM table.A")
class Meta:
db_table = 'myview\".\"mymodeltable'
managed = False
答案 0 :(得分:0)
使用inspectdb
管理命令,您可以从现有表中获取模型定义。为此,您需要配置 settings.py 文件以访问要使用的数据库,然后执行以下操作:
python manage.py inspectdb > models.py
您会看到它还会自动设置managed=False
。从那时起,您可以开始使用典型的objects.all(), objects.filter()
和这些东西来查询其对象
注意:不要忘记将导入模型的应用添加到 settings.py 文件的
INSTALLED_APPS
变量中。
答案 1 :(得分:0)
不幸的是,这可能是DjangoDocs
上的最终答案如果模型表示通过其他方式创建的现有表或数据库视图,这将非常有用。