美文网首页
Django 技巧之 Case-When

Django 技巧之 Case-When

作者: alue | 来源:发表于2023-08-29 23:13 被阅读0次

    在Django 的ORM实践中,灵活使用 Case-When 语句,能够帮助我们处理一些棘手问题。

    例如,用户模型中有个头像字段。如果用户自己上传了头像,那么就使用这个头像。否则,需要根据用户性别,返回各自默认的男女头像。

    这就非常适合 Case-When 语句来处理。

    可以定义表达式为

            avatar_url = Case(
                When(avatar__exact='', then=Case(
                    When(gender='男', then=Value(default_avatar_boy)),
                    When(gender='女', then=Value(default_avatar_girl))
                )),
                default='avatar',
            )
    

    然后,利用 annotate 和 values ,就能实现基于数据库的逻辑运算,速度相对更快一些。

    相关文章

      网友评论

          本文标题:Django 技巧之 Case-When

          本文链接:https://www.haomeiwen.com/subject/uoeomdtx.html