【发布时间】:2021-03-08 12:03:34
【问题描述】:
想象一下我有这个 Django 模型:
Class Letter(models.Model):
name = models.CharField(max_length=1, unique=True)
还有这个列表:
vowels = ['a', 'e', 'i', 'o', 'u']
我想查询 Letter 注释一个布尔字段,如果 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
我在查询中做错了什么,实现预期结果的正确方法是什么?
提前致谢。
【问题讨论】:
标签: python django django-models django-queryset django-annotate