Django итерация на values()

У меня есть что-то вроде этого:

vmware = Vmware.objects.values('pk', 'hostname')

результат :

<QuerySet [{'pk': 1, 'hostname': 'ste1vvcsa'}, {'pk': 3, 'hostname': 'ste1vvcsatest'}]>

Я хочу выполнить итерацию и получить значения pk и hostname

У меня возникает ошибка, когда я делаю что-то вроде этого:

for i in vwmare:
  print(i.hostname)

Ошибка : AttributeError: 'dict' object has no attribute 'hostname'

Это словарь, следовательно, вы получаете доступ к значению ключа путем подписывания:

for i in vwmare:
    print(i['hostname'])

Вы не можете использовать оператор dot (.) для ключей словаря. попробуйте так:

for i in vwmare:
    print(i["hostname"])
Вернуться на верх