【问题标题】:How do I translate the following the SQL query into a Django API query?如何将以下 SQL 查询转换为 Django API 查询?
【发布时间】:2015-02-01 22:26:47
【问题描述】:
SELECT "Treatment" FROM car_treatment, input
WHERE car_treatment."Colour" = input."Colour" AND car_treatment."Descrp" = input."Descrp"

我一直试图弄清楚如何编写这个简单的查询,但无济于事。 car_treatmentinput 代表两个不同的表。

非常感谢!

【问题讨论】:

  • 你能展示你的模型吗?

标签: python sql django


【解决方案1】:

您可以像这样使用 django 原始查询:

YOUR_MODEL.objects.raw('SELECT "Treatment" FROM car_treatment, input WHERE car_treatment."Colour" = input."Colour" AND car_treatment."Descrp" = input."Descrp"')

更多信息here

或者你可以这样做:

cursor = connection.cursor()
cursor.execute('SELECT "Treatment" FROM car_treatment, input WHERE car_treatment."Colour" = input."Colour" AND car_treatment."Descrp" = input."Descrp"')
cursor.fetchall()

【讨论】:

    【解决方案2】:

    我假设您已经有一个用于 car_treatmentinput 表的模型,名为 CarTreatmentInput。 (如果您不需要生成代表您的表的模型,请使用:https://docs.djangoproject.com/en/dev/howto/legacy-databases/#auto-generate-the-models)。然后你可以这样做:

    input = Input.objects.get(id=1)
    car_treatments = CarTreatment.objects.filter(colour=input.colour, descrp=input.descrp)
    

    然后 car_treatments 包含一组与您的查询匹配的实例,您可以对它们做一些有用的事情,例如在模板中渲染,然后在响应中传递回用户。

      {% for treatment in car_treatments %}
      <h1>{{treatment}}</h1>
      <ul>
      <li>{{treatment.descrp}}</li>
      <li>{{treatment.colour}}</li>
      </ul>
      {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 2019-01-26
      • 2019-10-17
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 2023-01-31
      • 2016-04-27
      • 1970-01-01
      • 2018-06-10
      相关资源
      最近更新 更多