我在html中有一个选项列表。
<select>
<option value="Please select" disabled selected>- Please Select -</option>
<option value="Iphone">Iphone</option>
<option value="Samsung">Samsung</option>
</select>
当用户选择其中一个选项时,将显示带有数据的特定表。
在views.py中:
dev_model = Device.objects.filter(name='name').all()
我想从html获取数据,然后在字段'name'
中用数据库过滤该选项。
如果它们相同,则将检索数据并以html显示。
答案 0 :(得分:0)
您可能要使用Django Form来完成此操作。
在名为forms.py
的文件中(与models.py
位于同一目录中),您将看到类似以下内容的文件:
from django import forms
class MyForm(forms.Form):
NAME_CHOICES = (('Iphone', 'Iphone'),
'Samsung', 'Samsung'))
name = forms.ChoiceField(choices=NAME_CHOICES)
然后,在您看来,通过上下文传递表单并将其呈现在django模板中。我经常建议使用ModelForm
而不是Form
,但是我对您的应用程序/用例没有任何细节。
将表单POST
返回到您的视图时,您应该可以通过使用
form=MyForm(request.POST)
if form.is_valid():
name = form['name'].value()
文档链接应该是入门的好地方
要在用户选择正确的字段后立即显示数据,您可以使用以下两种方法之一进行操作:
如果要在服务器端进行过滤,请使用ajax
使用DataTables将所有数据传递到浏览器,并让用户在方便时过滤其显示。
您的问题过于笼统,无法提供具体答案,同时又缺乏背后的必要细节。我已经为您的表格提供了起点,并提供了必要文档的链接。希望对您有帮助
答案 1 :(得分:0)
You can keep mapping of device to a particular value like this:-
DEVICE_TO_MAPPING = { 0:“三星”, 1:“ Iphone”, }
然后使用此映射将上下文发送为变量,例如“ devicemapping”,以模板中的html形式呈现。
<form name="device-form" method='POST' action='.'>
<select>
<option value="{{device_value}}" disabled selected>- Please Select -</option>
{% for device_value, device_name in devicemapping.items %}
<option name='{{device_value' value="{{device_value}}">{{ device_name }}</option>
{% endfor %}
</select>
</form>
在您的views.py中,您可以使用“映射”过滤数据。
device_value = request.POST.get('device_value')
device_name = DEVICE_TO_MAPPING.get(device_value)
dev_model = Device.objects.filter(name=device_name)