2011-10-12 4 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'을 사용하면 코드 덩어리 내의 10 개의 서로 다른 위치에서 그 값을 필요로 할 때 많은 타이핑이되기 때문에. 간단히 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). 값 ('myField') ** [0] ** [ 'myField'] _ – seler

+0

죄송합니다. 예, 주문이 취소되었습니다. 'values'는'get' 전에 와야합니다. 'get'을 호출하면 완료됩니다. –

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

개인적으로 나는 가장 우아한 방법이라고 생각합니다. selectmyField 데이터베이스에서 myVar

관련 문제