Byl přemýšlel, proč iterace slovník používat .klíče v django nebude fungovat?

0

Otázka

Já vím, že .položky by bylo užitečné, aby chytit hodnotu, ale chtěl vidět, proč to nebude fungovat?

Data:

...
city_data = {
      'city': json_data['name'],
      'country': json_data['sys']['country'],
      'temp': json_data['main']['temp'],
      'feels_like': json_data['main']['feels_like'],
      'temp_max': json_data['main']['temp_max'],
      'temp_min': json_data['main']['temp_min']
  }
return render(request, ..., context={'city_data':city_data})

šablona:

...
  {% for key in city_data.keys %}
    <li>{{city_data.key}}</li>
  {% endfor %}
...
django django-templates
2021-11-24 02:39:21
1

Nejlepší odpověď

1

Myslím si, že důvod, že to takhle nefunguje, protože django bude vypadat na test.key a pokusit se vyhledat řetězec "klíč" jako skutečný klíč do slovníku. Existuje několik způsobů, které můžete udělat. Jeden způsob je, že můžete definovat vlastní šablony filtr, který by vám umožní udělat. Já nevím, moc o vlastní filtry, takže nemůžu říct, jak konkrétně to udělat. Další způsob, jak je použít city_data.items v šabloně místo, jako je tento:

{% for key,value in city_data.items %}
   <li>{{ value }}</li>
{% endfor %}
2021-11-24 14:47:50

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................