2014-12-04 70 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 %}