如何将以下SQL查询转换为Django API查询?

时间:2014-12-04 05:57:41

标签: python sql django

SELECT "Treatment" FROM car_treatment, input
WHERE car_treatment."Colour" = input."Colour" AND car_treatment."Descrp" = input."Descrp"

我一直在试图弄清楚如何编写这个简单的查询,但没有用。 car_treatmentinput代表两个不同的表格。

非常感谢!

2 个答案:

答案 0 :(得分:0)

你可以像这样使用django raw查询:

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()

答案 1 :(得分:0)

我认为您已经拥有 car_treatment 输入表的模型,名为 CarTreatment 输入。 (如果不这样做,则需要使用以下代码生成代表表的模型: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 %}