处理数据库视图。允许为数据库视图创建迁移。使用django代码查看迁移。它们可以颠倒过来。自动检测模型视图定义中的更改。支持几乎所有选项作为常规makemigrations命令

django-db-views的Python项目详细描述


django数据库视图

如何安装?

  • pip install django-db-views

如何使用?

  • django_db_views添加到INSTALLED_APPS
  • 使用makeviewmigrations命令为视图模型创建迁移

如何在数据库中创建视图?

from django_db_views.db_view import DBView

class Balance(DBView):

    virtual_card = models.ForeignKey(
        VirtualCard, on_delete=models.DO_NOTHING, related_name='virtual_cards'
    )
    total_discount = models.DecimalField(max_digits=12, decimal_places=2)
    total_returns = models.DecimalField(max_digits=12, decimal_places=2)
    balance = models.DecimalField(max_digits=12, decimal_places=2)

    view_definition = """
        SELECT
            row_number() over () as id,  # Django requires column called id
            virtual_card.id as virtual_card_id,
            sum(...) as total_discount,
        ...
    """

    class Meta:
        managed = False
        db_table = 'virtual_card_balance'

视图迁移是如何工作的?

  • 它使用Django代码,视图迁移看起来像常规迁移
  • 它依赖于db_table名称。
  • makeviewmigrations命令查找视图的先前迁移。
    • 如果没有这样的迁移,那么脚本将创建一个新的迁移
    • 如果存在以前的迁移,但在{{CD7}}中没有变化,则没有检测到如果存在以前的迁移,那么脚本将使用以前的^ {< CD7}}进行反向操作,并创建新的迁移。

基于django 1.11.5的现场项目测试

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在数据库中存储工作日数据以及开始时间和结束时间?   mysql Java JPA内部联接查询不起作用   java MQ消息在不同的客户端应用程序中显示不同   javascript如何在xPage上提高typeAhead性能?   java在尝试保存EditText时无法暂停   mongodb“未能使用带参数的构造函数NO_构造函数实例化java.util.List”,   java如何修改使IllegalArgumentException:列“\u id”不存在的游标   转换Android。网Uri到Java。伊奥。输入流   java NetBeans RCP居中弹出窗口无法按预期工作   java将sql开发人员与netbeans连接起来   带有xmldsig签名的java JAXB编组   java ORACLE JDBC批处理执行不会返回受影响行的实际计数   java无法理解如何在由swagger自动生成的jaxrs服务器中访问请求头   java如何处理漏洞CVE20181258,同时将Spring安全版本5与外部客户端(最新版本)一起使用?   JavaSpring数据JPA存储库多租户单模式技术