我已在 $template_dir/sql/$someTableName.sql 文件中插入 View 的定义。 (创建或替换 View ),因此每次运行 syncdb
时,都会创建数据库 View 。
我可以在 models.py 中创建一个访问该 View 的 python 类吗?
使用 python 的原始 sql 功能是更好的做法吗?
---编辑---
我遇到的另一个问题是 View 没有主键,但 django 似乎假设会有一个主键,因为我收到错误在渲染时捕获异常:(1054,“未知列” appName_currentleagues.id' in 'field list'")
但我没有定义这样的成员:
Class CurrentLeagues(models.Model):
League = models.ForeignKey(League)
class Meta:
managed = False
所以我的猜测是,django 合理地认为我没有在 CurrentLeagues 类中定义主键,因此 Django 假设有一个名为 id
的主键。有没有办法告诉 Django 没有主键(因为这实际上是一个 View ),或者这不是我的问题?
最佳答案
您像往常一样定义模型并将managed = False
添加到元选项中:
class MyModel(models.Model):
...
class Meta:
managed = False
关于django - 为现有数据库/sql View 创建 django 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245956/