models.py
STORY_CHOICES = (
(0, 'Computer engineering'),
(1, 'Mechanical engineering')
)
views.py
story_list = MyOBJ.objects.all()
query = request.GET.get('q')
if query:
story_list = story_list.filter(
Q(story__icontains=query)
).distinct()
故事从STORY_CHOICES获取数据,当我尝试搜索并编写“计算机工程”时,它什么都没有。 '0'也给'计算机工程'。 我想把它覆盖到文本并进行字符串搜索。 我尝试直接采取STORY_CHOICES,我遇到了这个失败: FieldError在/ ... 无法将关键字“STORY_CHOICES”解析为字段。选择是:.... 我找不到真正的方法。
答案 0 :(得分:1)
你可以尝试:
in_filter = []
query = request.GET.get('q', '').lower()
for k, v in MyOBJ().STORY_CHOICES:
if query in v.lower():
in_filter.append(k)
if query:
story_list = story_list.filter(
Q(story__in=in_filter)
).distinct()