【问题标题】:Queryset filter for part of a number部分数字的查询集过滤器
【发布时间】:2016-02-11 22:12:51
【问题描述】:

我有一个代码列表:

21000000 Code 1
21000001 Code 2
22000000 Code 3
22000001 Code 4
22002100 Code 5

代码的模型是:

class Category(models.Model):
    code_id = models.CharField(max_length=50)

我想只过滤以 2100XXXX 开头的代码。当我使用startswith时,它似乎无法识别数字。什么是正确的查询集调用以仅过滤 2100XXXX 的正确方法。目前,我的代码是:

DB.objects.filter(code__startswith='2100')

这应该选择代码 1 和 2,而不是其他代码。

谢谢

【问题讨论】:

  • 大概您的模型字段是CharFieldTextField?返回的查询集是什么?您可以发布模型的相关部分吗?
  • @TimmyO'Mahony 模型已添加。
  • 那是您拥有的确切代码吗?您的字段名为 code_id,但您的查询使用 code
  • 我不确定这些是否是拼写错误,但您在查询中使用了错误的模型并且您使用了错误的字段。应该是Category.objects.filter(code_id__startswith='2100')
  • 代码都是由数字组成的吗?

标签: django postgresql django-queryset


【解决方案1】:

您已将字段命名为 code_id,并且您的过滤器是:code__startswith

这应该可行:

DB.objects.filter(code_id__startswith='2100')

【讨论】:

    猜你喜欢
    • 2022-12-05
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 2012-07-11
    • 1970-01-01
    • 2012-05-15
    • 2018-11-27
    相关资源
    最近更新 更多