У меня проблема преобразования строки в шаблон Django. Я пытаюсь взять строку (даты) и рассчитать дни с этой даты; поэтому он говорит что-то вроде «1 месяц, 2 недели (так как все время высокая дата)». Преобразование строки в дату работает нормально, проблема в шаблоне Django. В настоящее время шаблон показывает только последнюю дату из запроса данных json для каждого элемента, возвращенного в для l oop. Очевидно, мне нужна дата для каждой конкретной c записи, конвертированной и отображаемой.
Я отформатировал строку из запроса данных json в объект даты.
В настоящее время в качестве переменной days_since_ath_formatted
отправляется только последний элемент в списке.
Вот определение вида Django:
coin_list_url = f"https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page={per_page_limit}&page=1&sparkline=false"
request_coin_list = requests.get(coin_list_url)
results_coin_list = request_coin_list.json()
crypto_data_geckco = []
#string to date conversion
def to_string(time):
return time.strftime('%Y %M %d')
def from_string(date, formatting):
dt = datetime.datetime.strptime(date, formatting)
return dt
#for loop
for currency_gecko in results_coin_list:
days_since_ath = currency_gecko['ath_date']
days_since_ath_formatted = from_string(days_since_ath[:-14], "%Y-%m-%d")
print('days since ath formatted', days_since_ath_formatted)
crypto_data_geckco.append(currency_gecko)
print("crypto_data_geckco", crypto_data_geckco)
return render(request, 'crypto/latest.html', { 'crypto_data_geckco': crypto_data_geckco, 'days_since_ath_formatted': days_since_ath_formatted} )
и затем включено шаблон Django:
{% for currency in crypto_data_geckco %}
All-Time Percentage: {{ currency.ath_change_percentage|intword }}%
and passing the "days_since_ath_formatted" variable only accesses the last item in the list:
Days since ATH: {{ days_since_ath_formatted|timesince }}
{% endfor %}
В {{ days_since_ath_formatted|timesince }}
должна отображаться отдельная дата для каждого элемента, возвращаемого в поле для l oop. На данный момент он отображает только последний элемент в списке json для каждого элемента в поле для l oop.