Вернуть объект HttpResponse и отобразить страницу из Django views.py - PullRequest
0 голосов
/ 25 марта 2019

Я новичок в Django и учусь, изменяя некоторый существующий код.Исходный код в файле views.py содержал метод, который возвращал объект HTTP Response (давайте назовем это resp) в браузер одним нажатием кнопки.

Я хочу иметь возможность

  1. открывать новую страницу по нажатию этой кнопки (что я делаю, используя функцию render ())

кака также

передать ему resp (это потому, что стороннему API, который я использую, нужен этот HttpResponse объект для работы).

Могу ли я в любом случае сделать это?Я думал о том, чтобы передать resp как часть параметра context в функции render(), но я не понимаю, как собрать значение из этого словаря context и затем вернуть его в браузер.

РЕДАКТИРОВАТЬ: Это код в файле views.py:

def call(request):
    """Returns TwiML instructions to Twilio's POST requests"""
    response = Dial(caller_id=settings.TWILIO_NUMBER)

    # If the browser sent a phoneNumber param, we know this request
    # is a support agent trying to call a customer's phone
    if 'phoneNumber' in request.POST:
        response.number(request.POST['phoneNumber'])
    else:
        # Otherwise we assume this request is a customer trying
        # to contact support from the home page
        response.client('support_agent')

    response = str(response)
    probe = response.find(">")
    response = response[:probe+1] + "<Response>" + response[probe+1:] + "</Response>"
    print('response:', response)
    context = {'response': HttpResponse(response)}
    return render(request, 'browser_calls/call_in_progress.html', context)  # originally HttpResponse(response) was being returned here because that was required for the call to be placed

1 Ответ

0 голосов
/ 25 марта 2019

Что вы можете сделать, это вернуть все переменные из этой области, используя locals ()

context = locals()
return render(request, template, context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...