Получение пользовательского ввода из поля ввода в Django
Итак, я пытаюсь сделать так, чтобы пользователь вводил данные, а затем добавлял их в HTML, Я пытаюсь сделать систему чатбота, у меня есть модули, я просто испытываю трудности с получением пользовательского ввода. Я искал вокруг и думал, что что-то вроде этого будет работать, но я получаю следующее:
{'rawText': None}
Я буду принимать входные данные и передавать их в модуль python, который я написал, а затем добавлять результаты также в HTML, как мессенджер, все еще новичок в python и django, поэтому я не понимаю, почему я не получаю никакого текста обратно в консоль.
".views.py:
from django.shortcuts import redirect, render
from django.shortcuts import HttpResponse
from .forms import messageForm
from .main import get_weather, take_user_input
def home(request):
form = messageForm()
# Get the message to display to view.
if request.method == "POST":
rawText = request.GET.get('textInput')
context = {'rawText': rawText}
print(context)
return render(request, 'home.html', {'form': form})
forms.py:
from django import forms
class messageForm(forms.Form):
message = forms.CharField(max_length=1000)
home.html:
{% extends 'base.html'%}
{% load static %}
{% block content %}
<h2>Blue's Chatbot</h2>
<div>
<div id="chatbox">
<p class="botText"><span>Hi! Let's get to chatting.</span></p>
</div>
<div id="userInput">
<form type="text" id="textInput" action="" method="POST" novalidate>
{% csrf_token %}
{{ form }}
<input id="buttonInput" type="submit" value="Send">
</form>
</div>
{% endblock %}
Вы используете метод POST для отправки данных на сервер, поэтому вы должны получить данные из словаря POST, а не GET:
request.POST.get('textInput', '') # instead of request.GET.get('textInput', '')