2014-12-04 85 views
-2
SELECT "Treatment" FROM car_treatment, input 
WHERE car_treatment."Colour" = input."Colour" AND car_treatment."Descrp" = input."Descrp" 

我一直在想如何写这个简单的查询,但没有用。 car_treatmentinput代表两个不同的表格。如何将以下SQL查询翻译为Django API查询?

非常感谢!

+0

你能展示你的模型吗? – rnevius 2014-12-04 06:34:24

回答

0

您可以使用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() 
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 %}