如何根据范围滑块的值填充 Django 中隐藏字段的值
How can I populate value of a hidden field in Django from the value of a range slider
所以我正在构建一个应用程序,用户可以使用范围滑块使用新的整数值更新数据库。我有一个滑块,它为我提供了我想要 return 到视图的整数值,但我不知道如何从模板中 return 这个值。
https://docs.djangoproject.com/en/3.0/ref/forms/widgets/
我查看了文档,但找不到有关范围输入的任何信息。
# forms.py
from django import forms
class UpdateForm(forms.Form):
update = forms.IntegerField(widget=forms.HiddenInput(**something like:value='slider-input**}}))
# views.py
def home_view(request):
form = UpdateForm()
return render(request, 'main/index.html', {'form': form})
# index.html
...
<form id="update-form" method="post">
{% csrf_token %}
{{ form }}
<div id="slider">
<input class="slider-widget" min="0" max="25" step="1" value="0" type="range">
</div>
<div class="options">
<a href="{% url 'main-home' %}">
<img src="{% static 'main/media/cancel.png' %}" alt="cancel">
</a>
<button type="submit">
<img src="{% static 'main/media/confirm.png' %}" alt="confirm">
</button>
</div>
</form>
...
在最简单的形式中,您可以直接获取滑块值,不需要 HiddenField。
你的简单表格
class UpdateForm(forms.Form):
update = forms.IntegerField()
在您的 html 模板中,只需确保将 'name' 属性添加到您的滑块,并为其指定与表单中的字段名称相同的名称:
<div id="slider">
<input name="update" class="slider-widget" min="0" max="25" step="1" value="0" type="range">
</div>
在您看来,只需处理以下表格:
form = UpdateForm(request.GET or None)
if form.is_valid():
slider_value = form.cleaned_data['update']
# do somthing
实际上,对于像这样的简单案例,您并不真的需要表格。您也可以直接在您的视图中获取值
slider_value = request.GET.get('update')
所以我正在构建一个应用程序,用户可以使用范围滑块使用新的整数值更新数据库。我有一个滑块,它为我提供了我想要 return 到视图的整数值,但我不知道如何从模板中 return 这个值。
https://docs.djangoproject.com/en/3.0/ref/forms/widgets/
我查看了文档,但找不到有关范围输入的任何信息。
# forms.py
from django import forms
class UpdateForm(forms.Form):
update = forms.IntegerField(widget=forms.HiddenInput(**something like:value='slider-input**}}))
# views.py
def home_view(request):
form = UpdateForm()
return render(request, 'main/index.html', {'form': form})
# index.html
...
<form id="update-form" method="post">
{% csrf_token %}
{{ form }}
<div id="slider">
<input class="slider-widget" min="0" max="25" step="1" value="0" type="range">
</div>
<div class="options">
<a href="{% url 'main-home' %}">
<img src="{% static 'main/media/cancel.png' %}" alt="cancel">
</a>
<button type="submit">
<img src="{% static 'main/media/confirm.png' %}" alt="confirm">
</button>
</div>
</form>
...
在最简单的形式中,您可以直接获取滑块值,不需要 HiddenField。
你的简单表格
class UpdateForm(forms.Form):
update = forms.IntegerField()
在您的 html 模板中,只需确保将 'name' 属性添加到您的滑块,并为其指定与表单中的字段名称相同的名称:
<div id="slider">
<input name="update" class="slider-widget" min="0" max="25" step="1" value="0" type="range">
</div>
在您看来,只需处理以下表格:
form = UpdateForm(request.GET or None)
if form.is_valid():
slider_value = form.cleaned_data['update']
# do somthing
实际上,对于像这样的简单案例,您并不真的需要表格。您也可以直接在您的视图中获取值
slider_value = request.GET.get('update')