我一直在阅读Django表单,并且对如何继续感到困惑。我正在创建一个forms.py,其目的是在表单级别上,用户可以输入一个字符串查询,然后针对其中一个模型运行此查询,具体取决于从模型的下拉菜单中选择哪个模型。形成。 HTML中的内容如下:
<div class="row">
<form class="col s12">
<div class="row">
<div class="input-field col s6" >
<input type="text" class="validate" list="option">
</div>
<option value="1">model 1</option>
<option value="2">model 2</option>
<option value="3">model 3</option>
</select>
因此本质上,查询应该针对views.py中的适当模型运行。每个模型都有其自己的视图功能。另外,我应该如何构造我的urlconf来解决这个问题?
答案 0 :(得分:0)
我可以通过在视图中执行以下操作来做到这一点:
class MySearchView(View):
template_name = 'my_app/my_template.html'
model_dict = {'1':MyFirstModelClass, '2': MySecondModelClass, '3': MyThirdModelClass}
def get(self, request, *args, **kwags):
my_search_form = MySearchFormClass(request.GET)
if form.is_valid():
model_class_to_search = model_dict[form.cleaned_data['name_of_model_form_field']]
#run query here on model_class_to_search
model_class_to_search.objects.filter(field1=form.cleaned_data['name_of_form_search_field'])