【问题标题】:django filtering a model that contains integerdjango过滤包含整数的模型
【发布时间】:2018-02-18 13:08:03
【问题描述】:

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,但遇到了这个失败: 字段错误在 /... 无法将关键字“STORY_CHOICES”解析为字段。选择是:...... 我没有找到真正的方法。

【问题讨论】:

    标签: python django django-models filtering django-queryset


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 2014-09-17
      • 2020-04-06
      • 2019-12-16
      • 1970-01-01
      • 2012-03-13
      相关资源
      最近更新 更多