Ошибка: не вернул объект HttpResponse. Вместо этого он вернулся - PullRequest
1 голос
/ 25 октября 2019

Я хочу нажать кнопку в html-шаблоне

              <form action="{% url 'speech2text' %}" class="card-text" method="POST">
                  {% csrf_token %}
                  <button class="btn btn-primary btn-sm" type="submit">Start</button>
              </form>

              <p> Sie haben das folgende gesagt: </p>
              <p> {{ speech_text }} </p>

, нажав кнопку, код в следующем представлении должен быть выполнен и отправить результат обратно в шаблон:

def speech2textView(request):
    if request.method == "POST":
        r = sr.Recognizer()
        with sr.Microphone() as source:
            audio = r.listen(source)
            text = r.recognize_google(audio, language="de-DE")
            args = {'speech_text': text}
            return render(request, 'speech2text.html', args)

Что здесь не так? Большое спасибо за вашу помощь.

Ответы [ 3 ]

1 голос
/ 25 октября 2019

Я снова отредактировал код и теперь он работает. Я хотел бы поделиться этим. Большое спасибо этому сообществу.

def speech2textView(request):
    args = {}
    if request.method == "POST":
        print(request.method)
        r = sr.Recognizer()
        with sr.Microphone() as source:
            audio = r.listen(source)
            text = r.recognize_google(audio, language="de-DE")
            args = {'speech_text': text}
    return render(request, 'speech2text.html', args)
0 голосов
/ 25 октября 2019

попробуйте проверить контекст с помощью добавления команды печати и проверки в окне командной строки, например:

def speech2textView(request):
    if request.method == "POST":
        r = sr.Recognizer()
        with sr.Microphone() as source:
            audio = r.listen(source)
            text = r.recognize_google(audio, language="de-DE")
            args = {'speech_text': text}
            print(args)
            return render(request, 'speech2text.html', args)

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

0 голосов
/ 25 октября 2019

Эта ошибка возникает из-за отсутствия возврата! Кажется, что return render(request, 'speech2text.html', args) не работает. Попробуйте добавить return render() за пределами with, и, если возникнет та же ошибка, попробуйте добавить за пределами request.method == "POST":. Таким образом, вы можете проверить, где возникает проблема.

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