我在$ template_dir / sql / $ someTableName.sql文件中插入了一个视图的定义。 (创建或替换视图)所以每次运行syncdb
时,都会创建数据库视图。
我可以在models.py中创建一个访问该视图的python类吗?
更好的做法是改用python的原始sql功能吗?
--- --- EDIT
我遇到的另一个问题是视图没有主键,但django似乎假设会有一个因为我收到错误caught an exception while rendering: (1054, "Unknown column 'appName_currentleagues.id' in 'field list'")
但是我没有定义这样的成员:
Class CurrentLeagues(models.Model):
League = models.ForeignKey(League)
class Meta:
managed = False
所以我的猜测是django合理地看到我没有在CurrentLeagues类中定义主键,因此Django假设有一个名为id
的键。有没有办法告诉Django没有主键(因为这实际上是一个视图),或者甚至不是我的问题?
答案 0 :(得分:5)
您可以照常定义模型,并将managed = False
添加到元选项中:
class MyModel(models.Model):
...
class Meta:
managed = False
答案 1 :(得分:3)
尝试使用python manage.py inspectdb或python manage.py inspectdb> models.py