小编Eri*_*nes的帖子

如果字段值在外部列表中,Django 会注释布尔值

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

class Letter(models.Model):
    name = models.CharField(max_length=1, unique=True)
Run Code Online (Sandbox Code Playgroud)

还有这个列表:

vowels = ['a', 'e', 'i', 'o', 'u']
Run Code Online (Sandbox Code Playgroud)

Letter我想对注释布尔字段进行查询,True如果name值在vowels列表中,则查询,False否则查询。

我做了下一个查询:

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

letters = Letter.objects.annotate(
    is_vowel=Value(F('name') in vowels, output_field=BooleanField())
)
Run Code Online (Sandbox Code Playgroud)

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

python django django-models django-queryset django-annotate

3
推荐指数
2
解决办法
2608
查看次数