美文网首页
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