微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在乌龟 orm 中使用 CASE WHEN THEN ELSE

如何解决如何在乌龟 orm 中使用 CASE WHEN THEN ELSE

嗨,我正在尝试在 tortoise-orm 中使用 CASE WHEN THEN ELSE。 我尝试了以下但没有奏效:

import datetime
import tortoise.models
import tortoise.fields
import tortoise.expressions
from pypika import Case

class Task(tortoise.models.Model):
    uid = tortoise.fields.UUIDField(pk=True)
    name = tortoise.fields.CharField(255)
    name_updated_at = tortoise.fields.data.DatetimeField(auto_Now_add=True,null=False)

await Task.filter(uid="my-super-uid").update(
    name=Case()
    .when(tortoise.expressions.F('name_updated_at') > datetime.datetime.utcNow(),"Hi")
    .else_(tortoise.expressions.F('name'))
)

我知道 CASE 是 supported by pypika,但我不知道如何在 tortoise-orm 中使用它。 此外,我确实想使用 CASE,因为我想在一次更新中为多个字段使用案例,而不是使用不同的 filter(...) 参数进行多次更新。

知道如何使用 CASE()??

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。