【问题标题】:How to parse this Postgresql query into Django如何将此 Postgresql 查询解析为 Django
【发布时间】:2020-06-07 17:22:25
【问题描述】:

我有这个 Postgresql 查询:

select a.code from accounts a where a.code like '0077-7575%' or '0077-7575' like a.code||'%'

在 django,我正在尝试这样做:

q = Accounts.objects.filter(Q(code__startswith='0077-7575') | Q('0077-7575'__startswith=code))

问题是我不知道也找不到将'0077-7575' like a.code||'%' 翻译成 django 的方法,因为 a.code 是字段名称......我该如何解决这个问题?

【问题讨论】:

  • Doesnt work 太模糊了。指定您的问题。有什么错误吗?这样的错误结果
  • @ArakkalAbu 我不知道如何在 Django 中查询 '0077-7575' like a.code||'%',记住 a.code 是一个字段。
  • 您尝试使用 Django ORM 的结果如何?

标签: django postgresql


【解决方案1】:

如果我猜对了(您正在尝试检查您的字段是否包含在'0077-7575' 中,您可以尝试written in this answer

基本上你必须这样做:

Accounts.objects \ 
  .annotate(querystring=Value('0077-7575', output_field=CharField())) \ 
  .filter(querystring__contains=F('code'))

【讨论】:

    猜你喜欢
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 2023-01-31
    • 1970-01-01
    • 2021-12-26
    • 2019-09-21
    相关资源
    最近更新 更多