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%')]>
    

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

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

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

  • 相关阅读:
    蓝桥杯省赛经验
    阅读笔记四
    阅读笔记二
    阅读笔记一
    动态规划——Maximum Sum of 3 Non-Overlapping Subarrays
    动态规划——Remove Boxes
    动态规划——Dungeon Game
    动态规划——Freedom Trail
    动态规划——Frog Jump
    《软件需求十步走》阅读笔记一
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/15770779.html
Copyright © 2011-2022 走看看