8

我在 $template_dir/sql/$someTableName.sql 文件中插入了一个视图的定义。(创建或替换视图)所以每次我运行时syncdb,都会创建数据库视图。

我可以在 models.py 中创建一个访问该视图的 python 类吗?

只使用python的原始sql功能是更好的做法吗?

- -编辑 - -

我遇到的另一个问题是视图没有主键,但 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 没有主键(因为这实际上是一个视图),或者这甚至不是我的问题?

4

2 回答 2

6

请参阅非托管模型

您像往常一样定义模型并添加managed = False到元选项:

class MyModel(models.Model):
    ...
    class Meta:
         managed = False
于 2010-02-11T17:13:02.490 回答
3

尝试使用 python manage.py inspectdb 或 python manage.py inspectdb > models.py

于 2012-08-14T19:14:55.220 回答