2016-11-15 40 views
0

我有一個Python項目(我對Python很陌生),並且在其中一個網頁上有一個下拉框,它應該顯示所有項目的列表其'狀態'字段設置爲'生活'。Python-如何通過類查詢數據庫

似乎有兩個特定的對象沒有顯示在這個下拉框中,所以我想手動查詢數據庫來檢查他們的「狀態」字段設置爲什麼。

如何根據他們的'項目名稱'/'項目代碼'手動查詢這些特定項目的數據庫,我知道這兩個項目都是獨一無二的?

我試圖讓所有的殼項目的清單,這樣我就可以通過project_name爲我想用命令的具體項目查詢該名單:

from projects.models import Project 
prjcts = [] 
prjcts = Project.objects.all() 

這得到所有的Project對象,並將它們分配到列表prjcts。我現在想查詢該列表中某個特定項目,並嘗試這樣做是這樣的:

6Stoke = prjcts.get(project_code = 6SPR) 

我的目的是與它的值6SPR將被分配給變量6Stoke,使project_code項目然後我可以查看該特定項目的所有信息。然而,當我試圖運行在控制檯這一行,我得到了一個

SyntaxError: invalid syntax

警告該報告強調該行的6Stoke部分結束。

這裏我的語法有什麼問題?我如何獲得具有指定project_code的項目並將其分配給變量?

編輯

啊,感謝OK-。我改變變量名,並再次運行查詢,分配它的結果到可變sixStokeList,即

sixStokeList = Project.objects.filter(project_code = "6SPR") 
  • 此返回的兩個項目,並具有印刷在數組中的元素到控制檯,即sixStokeList[0] & sixStokeList[1],我知道我想要哪一個,所以我分配了特定的一個給一個變量與:

    sixStoke = sixStokeList [1]

然後我輸入sixStoke.並在控制檯中按下'tab'來查看這個變量可用的內容。我做了另一個項目相同,即

theFoss = Project.objects.filter(project_code= "1TF") 
theFoss. (& pressed 'tab') 

打字variable + . + tab是每個project情況不同,即使我在完全相同的方式得到了他們兩個後給予可用選項的列表,該列表會告訴我,他們不是同一類的實例...鑑於我通過查詢同一個類而得到它們,這怎麼可能呢?

+0

這只是變量不能與蟒蛇 –

+2

數字開始你不能說出一個變量開始與一些。叫它'SixStoke',或者'Prj6Stoke',或者'Stoke6'什麼的。 –

+0

6SPR(項目代碼)是一個字符串?也許你應該這樣使用: '6Stoke = prjcts.get(project_code ='6SPR')' – Abiezer

回答

2

你不能說出一個變量開始與多家

+0

啊,好的。非常感謝。我刪除了數字,並能夠將類實例分配給變量。我使用相同的'filter()'方法爲不同的變量分配了幾個實例,只是爲我正在過濾的'project_code'傳入一個不同的值......但似乎這兩個變量的實例屬於不同的課程給予他們可用的選項是不同的 - 我怎麼能這樣做,我通過查詢同一個班級來得到他們兩個?我已更新我的問題以包含此詳細信息... – someone2088