我遇到了一个问题,我不记得解决问题的方法。
我有一个模板,可以根据用户的标准查询数据库并获得结果。
我的观点如下:
-fdump-parse-tree
但是在加载模板时会自动启动此请求。
在我的HTML模板中,我有:
@login_required
def Identity_Individu_Researching(request) :
query_lastname_ID = request.GET.get('q1ID')
query_firstname_ID = request.GET.get('q1bisID')
query_naissance_ID = request.GET.get('q1terID')
sort_params = {}
set_if_not_none(sort_params, 'id__gt', query_lastname_ID)
set_if_not_none(sort_params, 'Prenom__icontains', query_firstname_ID)
set_if_not_none(sort_params, 'VilleNaissance', query_naissance_ID)
query_ID_list = Individu.objects.filter(**sort_params)
return render(request, 'Identity_Individu_Recherche.html', context)
那么只有当用户使用表单按钮提交表单时,我才能启动查询集?我知道它基于<form autocomplete="off" method="GET" action="">
<input type="text" name="q1ID" placeholder="Nom (ex:TEST) " value="{{ request.GET.q1ID }}"> et
<input type="text" name="q1bisID" placeholder="Prénom (ex:Test)" value="{{ request.GET.q1bisID }}">
<input type="text" name="q1terID" placeholder="Ville Naissance" value="{{ request.GET.q1terID }}"> (optionnel)
<input class="button" type="submit" name="recherche" value="Rechercher">
</form>
<br></br>
<table style="width:120%">
<tbody>
<tr>
<th>ID</th>
<th>État</th>
<th>N° Identification</th>
<th>Civilité</th>
<th>Nom</th>
<th>Prénom</th>
<th>Date de Naissance</th>
<th>Ville de Naissance</th>
<th>Pays de Naissance</th>
<th>Institution</th>
</tr>
{% for item in query_ID_list %}
<tr>
<td>{{ item.id}}</td>
<td>{{ item.Etat}}</td>
<td>{{ item.NumeroIdentification}}</td>
<td>{{ item.Civilite }}</td>
<td>{{ item.Nom }}</td>
<td>{{ item.Prenom }}</td>
<td>{{ item.DateNaissance }}</td>
<td>{{ item.VilleNaissance }}</td>
<td>{{ item.PaysNaissance }}</td>
<td>{{ item.InformationsInstitution }}</td>
</tr>
{% endfor %}
</tbody>
</table>
答案 0 :(得分:2)
您应该检查请求是否包含表单数据。
if 'recherche' in request.GET:
...
答案 1 :(得分:0)
您可以在模板中更改表单的方法
<form autocomplete="off" method="POST" action="">
<!-- ^^^^^ -->
在视图中:
query_ID_list = Individu.objects.all()
if request.method == 'POST':
# your logic
query_ID_list = query_ID_list.filter(**sort_params)
return render(request, 'Identity_Individu_Recherche.html', context)