django print value of query set

Viewed 3846

simple problem (i think).
I have following query:

hostname = Host.objects.get(pk=(host_id))
env = Host.objects.filter(cfthostname=hostname).values('cftos')
print(env)

what i get from print is:

<QuerySet [{'cftos': 'unix'}]>

how to make it:

unix
2 Answers

Try the following:

instance = Host.objects.filter(cfthostname=hostname).values('cftos')[0]
env = instance['cftos']

Also, if you're only getting one value, you can use flat like below to do this in one line:

env = Host.objects.filter(cfthostname=hostname).values_list('cftos', flat=True)[0]
Host.objects.filter(cfthostname=hostname).values('cftos') 

returns a query, if you want data use:

Host.objects.filter(cfthostname__exact=hostname).values_list('cftos', flat=True) 

or if you have only one result:

Host.objects.get(cfthostname__exact=hostname).cftos

Host.objects.filter(cfthostname=hostname).values().last()['cftos']
Related