2009-10-28 1 views

답변

4
server_ips = [i.ip for i in AlarmServer.objects.all()] 

작동해야합니다 (방금 공간을 추가했습니다). 나는 "작동하지 않는 것"

[email protected] % ./manage.py shell 
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49) 
[GCC 4.3.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
(InteractiveConsole) 
>>> from mysite_org.videos.models import Video 
>>> url_list = [v.url for v in Video.objects.all()] 
>>> url_list 
[u'http://media.mysite.org/videos/sblug_jan2009.flv', u'http://media.mysite.org/videos/sblug_feb2009.flv', u'http://media.mysite.org/videos/phpwm_mar2009.flv', u'http://media.mysite.org/videos/sblug_may2009.flv', u'http://media.mysite.org/videos/sblug_june2009.flv', u'http://media.mysite.org/videos/sblug_sep2009.flv', u'http://media.mysite.org/videos/bugjam-oct-2009.flv'] 
+0

메모리 절약을 위해이 쿼리 세트의 끝 부분에'.iterator() '태그를 붙일 수 있다고 생각합니다. 'AlarmServer.objects.all(). iterator()'. 체크 아웃 : http://www.djangoproject.com/documentation/models/lookup/ – thornomad

3

values_list

server_ips = [i[0] for i in AlarmServer.objects.values_list('ip')] 
+2

이것이 OP가 원하는 것인지 알 수 없지만 단순히 예제에서 'AlarmServer.objects.values_list()'를 사용하여 목록 이해를 피할 수 있습니다. 'ip', flat = True)' –