2011-10-12 98 views
0

我經常想從一張桌子上搶一塊。所以我這樣做:有沒有更快的方法來做到這一點?

tmp = my_model.objects.get(pk=5) //Or some other record... 
myVar = tmp.myField 

現在myVar擁有我想要的值。這兩個步驟過程很煩人。是否有一個這樣做的一步嗎?

感謝

+0

是否有你需要得到一個獨立變量值的原因?通常,您只需在代碼中使用'model_instance.field_name'即可,而無需執行第二步。 –

+0

因爲使用'model_instance.field_name'是一大堆的輸入,如果我需要在一個代碼塊的十個不同位置的值。簡單地分配'Y = model_instance.field_name'使得輸入更容易:-) – Garfonzo

+0

我將把一個信息[在此網站] [1] [1]:http://stackoverflow.com/questions/ 1372016/django-models-custom-functions – LPunker

回答

4
myVar = my_model.objects.get(pk=5).myField 
+0

我應該想到這一點。謝謝:-) – Garfonzo

1

,因爲你只關注一個領域,我建議:

myVar = my_model.objects.values('myField').get(pk=5)['myField'] 

沒有必要把你的DB不適當的負荷。

+0

它可能工作,如果它是:_myVar = my_model.objects。 **過濾器**(pk = 5).values('myField')** [0] ** ['myField'] _ – seler

+0

對不起。是的,我的訂單已關閉。 「價值」必須在「獲得」之前。一旦你打電話給你,你就完成了。 –

0
myVar = my_model.objects.filter(pk=5).values_list('myField', flat=True)[0] 

我個人認爲上面是最優雅的方式。它會從select只有myField從數據庫中,並將其傳遞到myVar

相關問題