私は単純なhtmlページを設定しています。このページは、ユーザーが入力した情報をキャプチャし、ユーザーが入力した情報に基づいて新しいページを作成します。問題は、バックアップされたユーザーが入力した情報を取得できないことと、どこに間違っているのか理解できないことです。私のhtmlの関連部分をこのように設定されてPython Djangoユーザー入力を取得する
class BusinessName(forms.Form):
business_name = forms.CharField(widget = forms.HiddenInput(), required = False)
:
def suggestion(request):
if request.method == 'POST':
form = BusinessName(request.POST)
if form.is_valid():
data=form.cleaned_data
context = insert_function_here(data)
return render(request,'mainpage.html', context)
else:
form = BusinessName()
context = {'form':form}
return render(request,'mainpage.html', context)
マイforms.pyはこのような設定である:
マイビューファイルには、このような設定であります
<form id="user_input_form" method="post" action="http://127.0.0.1:8000/textinsighters/suggestion">
Enter Your Business Name : <input type="text" list="browsers" name="browser" id="user_input">
{% csrf_token %}
{{ form }}
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
<button onclick="myFunction()">Submittt</button>
</form>
<script>
function myFunction() {
document.getElementById("id_business_name").value = document.getElementById("user_input").value;
document.getElementById("user_input_form").submit();
}
</script>
私はhtmlでフォームを作成しているので、自動補完リストが必要です。ユーザー入力を取得し、Djangoフォームフィールドの値をユーザーが入力した値に設定して送信します。私は戻って何かを取得する必要がありますが、ビュー内の変数 'データ'はユーザー入力を含んでいません。
おかげ
ありがとうございます、完璧に動作します。 forms.pyファイル内のリストを定義することは可能ですか、それともhtmlで定義する必要がありますか?私のリストは100のオプションのように大きくなるだろう、なぜ私はオートコンプリート機能が必要なのか。 これを実装するにはより良い方法がありますか? –
あなたのリストがこれに近づく大きな方法に成長できるなら、代わりにforms.CharField()を作成し、このフィールドを満たす検索のためのAPIソースを使用することができます。最大1kのオプションPython/Djangoは簡単に管理するはずですが、それを超える検索APIは面白いでしょう。答えがあなたを助けたら、それをアップアップして受け入れてください:-) –