Python queryset过滤器仅根据第一行-Django

Python queryset过滤器仅根据第一行-Django,python,django,Python,Django,使用Django中的queryset.filter()绑定到筛选数据。但它并没有达到我的预期。有人能纠正我吗。 单个数据单元如下所示。(每行之间用\n分隔) こちらは1.行です。(0.57)\n こちらは2.行です。(0.67)\n こちらは3.行です。(0.77)\n こちらは4.行です。(0.87)\n こちらは5.行です。(0.697) 代码如下 queryset = queryset.filter(predicted_result__regex = r"\A.*", predicted_

使用Django中的queryset.filter()绑定到筛选数据。但它并没有达到我的预期。有人能纠正我吗。
单个数据单元如下所示。(每行之间用\n分隔)

  • こちらは1.行です。(0.57)\n
  • こちらは2.行です。(0.67)\n
  • こちらは3.行です。(0.77)\n
  • こちらは4.行です。(0.87)\n
  • こちらは5.行です。(0.697)
  • 代码如下

    queryset = queryset.filter(predicted_result__regex = r"\A.*", predicted_result__contains='(0.5') |\
                       queryset.filter(predicted_result__regex = r"\A.*", predicted_result__contains='(0.6') |\
                       queryset.filter(predicted_result__regex = r"\A.*", predicted_result__contains='(0.7')
    
    输出:
    这将考虑所有5条线路,而不仅仅是第一条线路

    目标:
    只有get值包含在得分之间的第一行(括号内)0.5到0.8。所有其他行都应忽略

    预期结果:

  • こちらは1.行です。(0.57)\n

  • 当前查询的问题是“单个数据单元”当前是字符串。使用正则表达式计算可能需要或不需要的内容仍将返回“True”上的整个字符串。您应该将“文本”与“浮点”值分开,以便更有效地查询

    class Model(model):
        descriptor = models.CharField()
        value = models.FloatField()
    
    现在您可以自己查询“值”

    如果由于任何原因无法更改模型,则需要执行多个查询并使用union/intersection/DIFFERSION方法

    fives_queryset = queryset.filter(predicted_result__contains'(0.5')
    sixes_queryset = queryset.filter(predicted_result__contains'(0.6')
    sevens_queryset = queryset.filter(predicted_result__contains'(0.7')
    
    result_queryset = union(fives_queryset, sixes_queryset, sevens_queryset)
    

    它们不是都是真的吗?实际上,你并不是在否定坏值……它的“工作代码”。但那不是我想要的。我只需要得到两个函数的第一行代码:predicted_result_contains和predicted_results_regexthes不是django标准。predicted_result是字段而不是函数这是正确的。但改变模式不是我需要的。我不能改变模型。难道没有其他方法可以做到这一点吗?你发布的代码也在做同样的事情。无论如何,谢谢!