Ves93 Ответов: 2

Джанго - как поменять петлю внутри посмотреть


Я знаю, как перевернуть цикл внутри шаблона: {% ... | обратный %}

Но я не могу сделать то же самое, когда цикл for находится внутри views.py.

Я не могу найти синтаксис для этого.

Что я уже пробовал:

import requests
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponseRedirect
from .models import City

# Create your views here.
def user_homepage(request):
    url = 'http://api.openweathermap.org/data/2.5/weather?q={}&units=imperial&appid=38e4fec38e509c018629074ac1754906'
    city = 'London'
    
    cities = City.objects.all()
    
    weather_data = []
    
    for city in cities:
    
        r = requests.get(url.format(city)).json()
        
        city_weather = {
            'city': city.name,
            'temperature' : r['main']['temp'],
            'description' : r['weather'][0]['description'],
            'icon' :  r['weather'][0]['icon'],
        }
        
        weather_data.append(city_weather)
        
        result = {'city_weather' : city_weather}
        return render(request, 'userhomepage.html', result)
    
# def post(self, request):

2 Ответов

Рейтинг:
0

RickZeeland

Может быть, вы можете использовать reverse в своем классе City, чтобы вернуть результат, что-то вроде этого:

return reverse(bla, blabla)

Также видеть: Django Tutorial Part 6: Generic list and detail views - Learn web development | MDN[^]
class Author(models.Model):
...
return reverse('author-detail', args=[str(self.id)])


Рейтинг:
0

RickZeeland

Я нашел некоторую документацию на странице 140 здесь:
Сэмс научи себя Джанго за 24 часа - Брэд Дейли - Google Boeken[^]

{% for title in books reversed %}

Хотя эта глава посвящена представлениям, она все еще может быть шаблонной, это не очень ясно ...


Ves93

На самом деле оказывается, что мне действительно нужно сделать цикл for в шаблоне, и я действительно пытался повернуть вспять в шаблоне - с правильным синтаксисом, - но по какой-то причине это не работает. Он не вызывает никаких ошибок, но он отказывается изменить порядок; он сохраняет первоначальный порядок.