zoukankan      html  css  js  c++  java
  • django中的When,Case用法

    https://docs.djangoproject.com/en/2.2/ref/models/conditional-expressions/
    # Case()接受任意数量的When()对象作为单独的参数。使用关键字参数提供其他选项。如果没有任何条件计算为TRUE,则default返回带有关键字参数的表达式。如果default未提供参数,None则使用。
    # 示例
    from datetime import date, timedelta
    from django.db.models import Case, CharField, Value, When
    >>> Client.objects.create(
        name='Jane Doe',
        account_type=Client.REGULAR,
        registered_on=date.today() - timedelta(days=36))
    >>> Client.objects.create(
        name='James Smith',
        account_type=Client.GOLD,
        registered_on=date.today() - timedelta(days=5))
    >>> Client.objects.create(
        name='Jack Black',
        account_type=Client.PLATINUM,
        registered_on=date.today() - timedelta(days=10 * 365))
    >>> Client.objects.annotate(
    	discount=Case(
        	When(account_type=Client.GOLD, then=Value('5%')),
            When(account_type=Client.PLATINUM, then=Value('10%')),
            default=Value('0%'),
            output_field=CharField(),
        ),
    ).value_list('name', 'discount')
    <QuerySet [('Jane Doe', '0%'), ('James Smith', '5%'), ('Jack Black', '10%')]>
    

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    Java annotation
    子类 父类强转 HttpServlet service实现
    父类 子类 强转
    HttpServlet Service方法
    java go
    IO写 PrintWriter
    IO读 BufferedReader+FileReader
    Java NIO-3
    心跳包(HeartBeat)
    Git学习笔记(一)
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/15770779.html
Copyright © 2011-2022 走看看