Python 如何在django中使用MySQL视图?
我想使用我在MySQL中创建的视图作为Django中的模型。我想在我的内部网站上显示公司正在进行的未完成流程的状态。我在论坛上只找到了一些比较老的条目,所以有没有一种简单的方法可以通过Python 如何在django中使用MySQL视图?,python,mysql,django,view,Python,Mysql,Django,View,我想使用我在MySQL中创建的视图作为Django中的模型。我想在我的内部网站上显示公司正在进行的未完成流程的状态。我在论坛上只找到了一些比较老的条目,所以有没有一种简单的方法可以通过syncdb传递MySQL视图 如果没有,则假设我有两个表: 子流程的硬写里程碑,例如: 将进程和子进程信息作为上表ID的表: 我在MySQL中的观点就是这样的。 4) 因此,结果将是: 我想在我的django应用程序中只有一个模型,结果4。 最快的方法是什么?自定义SQL查询?或者我需要为progress\u
syncdb
传递MySQL视图
如果没有,则假设我有两个表:
最快的方法是什么?自定义SQL查询?或者我需要为
progress\u tb
和proc\u tb
建立模型并将它们结合起来吗?我如何多次引用同一个表(在Access/MySQL中,我有progress\u tb
asprogress\u tb\u 1
et c.)?到现在为止,我只知道如何进行过滤查询,但如何从联接表中“添加”几列呢?我尝试了django的“extra”选项,但我不明白它是如何工作的:(您可以通过嵌套的Meta
类上的managed=False
字段声明将视图指定为不受django管理:
class MyViewModel(models.Model):
field1 = models.IntegerField()
[...]
class Meta:
managed = False
db_table = 'MyView' # your view name
managed=False
将导致python manage.py syncdb
忽略该模型以进行同步。谢谢,我明天会尝试一下!即使syncdb无法识别该视图,它也能工作吗?我只需按照视图中的字段名称命名即可。是的。在没有syncdb
操作的情况下,它仍然能工作。这就是managed
字段的设计目的。您不必完全按照视图中的方式命名字段,但是如果字段具有良好的、可理解的名称,那么您可能应该这样做。如果您想将视图的字段名与Django模型的字段名分开,您可以指定字段的模型实例化。例如。g、 field1=models.IntegerField(db_column='super_crapy_field_name')
那么我的MyViewModel如何知道“field1”实际上是“sub_Proc1%”,而“field2”是“sub_Proc2_2%”(来自给定示例)?因为我抓到了。好的,sub\u Proc1
可以重命名,但不必重命名。如果不想重命名它,只需执行sub\u Proc1=models.IntegerField()
(或任何正确的模型类型)。如果要重命名它,请使用fielddb\u column
-sub\u Proc1\u重命名=models.IntegerField()(db_column='sub_Proc1')
。谢谢你的建议——我会研究一下:)谢谢你的其余建议,它很管用!