我对于Django,Stackoverflow和一般的编码都是新手,所以我将不胜感激。
我正在尝试向我的网站添加一个表单,该表单将仅具有选择字段。用户选择所有选项后,我想将它们重定向到另一个页面,在该页面中,根据所有选择,我将从数据库的多个表中返回不同的信息(所有选择的选项共同影响表中显示的信息)。
我知道这个示例很尴尬,所有这些都是为了最终了解我想要实现的目标。
一个例子: 第一页有3个选项:
重定向页面具有三个表:
用户不会以任何方式修改数据库,因此我认为表单可以具有GET方法。
所以我的问题是从用户那里获取值并基于该值从数据库中获取唯一值的最佳方法是什么?我想为每个表格返回一个列表,我计划针对每个城市,每个年龄段和每个流派定期更新该列表。
我现在正在尝试使用选择窗口小部件执行此操作。目前,我什么也不返回,因为我不确定如何从用户那里获取数据并使用它。
forms.py:
class MyForm(forms.Form):
select1 = forms.ChoiceField(widget=forms.Select,
choices=Select1.objects.all().values_list('id', 'name'))
select2 = forms.ChoiceField(widget=forms.Select,
choices=select2.objects.all().values_list('id', 'name'))
select3 = forms.ChoiceField(widget=forms.Select,
choices=select3.objects.all().values_list('id', 'name'))
views.py
class Page(TemplateView):
template_name = 'project/index.html'
def get(self, request):
form = MyForm()
return render(request, self.template_name, {'form': form})
html:
<select name="{{ form.select1.name }}">
<option class="dropdown-menu" value="" disabled selected>Please
select</option>
{% for choice in form.select1.field.choices %}
<option value="{{ select1.0 }}">{{ select1.1 }}</option>
{% endfor %}
</select>
,其他两个选择使用相同的代码。由于设计网站的方式,我分别绘制了它们。