如何在 Django 中使用 MySQL 视图?

How to use MySQL view in django?

我想使用我在 MySQL 中创建的视图作为 Django 中的模型。我想在我的内部网站上显示我公司正在进行的未完成流程的状态。我在论坛上只找到了相当旧的条目,所以有没有一种简单的方法可以通过 syncdb 传递 MySQL 视图?

如果没有,假设我有两个 table:

  1. hard-writen 子流程的里程碑,例如:
  2. table 进程和子进程信息作为上面 table 的 ID:

  3. 我在 MySQL 中的观点会做类似的事情。 4) 所以结果是:

我想在我的django APP中只有一个模型,即第4个结果。 最快的方法是什么?自定义 SQL 查询?还是我需要有 progress_tbproc_tb 的模型并将它们组合起来?我如何多次引用相同的 table(如 Access/MySQL 我有 progress_tbprogress_tb_1 等等)?到现在为止,我只知道如何进行过滤查询,但是我如何 "add" 加入 table 的几列?我尝试了 django 的 "extra" 选项,但我不明白它是如何工作的:(

您可以通过嵌套 Meta class 上的 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 忽略该模型进行同步。