Проблема рендеринга в django - PullRequest
0 голосов
/ 26 мая 2020

Я использую API для получения информации о случаях коронавируса по всему миру, и у меня проблема в последней строке кода


from django.shortcuts import render
import requests
from django import forms
from django.views.generic import TemplateView
from .forms import homeform

def home(request):




    if request.method =='POST':

        form = homeform(request.POST)
        if form.is_valid():
            text = form.cleaned_data
            field = text['name']
            print(field)
            country = field

    else:

        form = homeform()
        country = 'algeria'
    url = "https://covid-193.p.rapidapi.com/statistics"
    querystring = {"country": country}




    headers = {
        'x-rapidapi-host': "covid-193.p.rapidapi.com",
        'x-rapidapi-key': "36b864062emshac7e191eb5087e6p169e6bjsn24c86f3408c1"
           }

    response = requests.request("GET", url, headers=headers, params=querystring).json()
    data = response['response']
    print(data)
    d = data[0]
    context = {
        'all': d['cases']['total'],
        'recovered': d['cases']['recovered'],
        'deaths': d['deaths']['total'],
        'new': d['cases']['new'],
        'serioz': d['cases']['critical'],
        'active':d['cases']['active'],
        'deaths_new':d['deaths']['new']
        }




    return render(request, 'index.html',{'form':form}, context)




здесь у меня проблема с отображением страницы, которую он только что показывает мой html код на веб-странице, но когда я удаляю контекст из последней строки кода, все становится нормально, пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Я думаю, вам нужно изменить свой код на этот:

return render(request, 'index.html',{'form':form, 
                                     'context':context})

Таким образом вы получите оба в файле html.

0 голосов
/ 26 мая 2020

Я думаю, вы пытаетесь передать два контекстных словаря. Ваш {'form': form} находится на месте аргумента контекста, поэтому ваш контекст фактически не передается как контекст. Добавьте форму в словарь контекста в строке выше return и удалите {'form': form} из вашей функции рендеринга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...