Django请求自动启动

时间:2017-09-06 09:16:58

标签: django

我遇到了一个问题,我不记得解决问题的方法。

我有一个模板,可以根据用户的标准查询数据库并获得结果。

我的观点如下:

-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 }}"> &nbsp; <input type="text" name="q1terID" placeholder="Ville Naissance" value="{{ request.GET.q1terID }}"> (optionnel) <input class="button" type="submit" name="recherche" value="Rechercher">&nbsp; </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>

2 个答案:

答案 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)