gpt4 book ai didi

python - 如果字段值在外部列表中,Django 注释 bool 值

转载 作者:行者123 更新时间:2023-12-05 01:09:38 26 4
gpt4 key购买 nike

想象一下我有这个 Django 模型:

class Letter(models.Model):
name = models.CharField(max_length=1, unique=True)

还有这个列表:

vowels = ['a', 'e', 'i', 'o', 'u']

我想对 Letter 进行查询,注释一个 bool 字段,如果 name 值在 vowels 中,它将是 True 列表,否则为 False

我做了下一个查询:

from django.db.models import Value, F, BooleanField

letters = Letter.objects.annotate(
is_vowel=Value(F('name') in vowels, output_field=BooleanField())
)

但是无论我分析什么字母,结果总是 False我在查询中做错了什么,实现预期结果的正确方法是什么?提前致谢。

最佳答案

您可以使用以下查询。 django doc conditional expressions

from django.db.models import Value, BooleanField, Case, When

letters = Letter.objects.annotate(
is_vowel=Case(
When(name__in=vowels, then=Value(True)),
default=Value(False),
output_field=BooleanField()
),
)

关于python - 如果字段值在外部列表中,Django 注释 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65007962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com