想象一下我有这个 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
我在查询中做错了什么,实现所需结果的正确方法是什么?” 提前致谢。