【发布时间】:2014-02-11 08:25:15
【问题描述】:
我需要在我的 django 应用程序(1.6 版)中使用数据库视图(使用 Postgres)。过程如下:
- 我创建了一个视图,然后运行
python manage.py inspectdb以获得正确的模型表示。 - 我已更改模型以反映这种情况。
这是视图的代码(它确实有效):
SELECT employee.employee_id, employee.firstname, employee.lastname, employee.birthdate, employee.is_active
FROM dblink( blah blah);
这是 django 模型的生成代码:
class Employee(models.Model):
employee_id = models.IntegerField(blank=True, null=True)
firstname = models.TextField(blank=True)
lastname = models.TextField(blank=True)
birthdate = models.DateField(blank=True, null=True)
is_active = models.NullBooleanField()
class Meta:
managed = False
db_table = 'employee'
我尝试过只使用managed(而不使用db_table)或同时使用两者。
无论如何,如果我使用 syncdb,我会收到这样的错误:
django.db.utils.ProgrammingError: referenced relation "employee" is not a table
好吧,这是真的,但我到底该怎么办?
我也玩过迁移,但我也遇到了一些错误:
django.db.utils.ProgrammingError: relation "dblink_test2_employee" does not exist
任何帮助表示赞赏?我是否忽略了一些你很清楚的事情?
【问题讨论】:
-
我不了解 django,但您似乎正在尝试更新视图,而不是表格。
-
嗯,它应该是这样工作的。您创建一个视图,然后告诉 django 无论如何不要更改它,方法是使用
managed = False
标签: django postgresql django-models