Django基于类的视图不显示查询结果

时间:2017-09-11 09:04:29

标签: python django

我正在尝试使用类来改进Django view以获得更好的脚本。

我不是为什么但是我没有克服使用新语法显示查询结果。也许有人可以帮我找到解决方案?

这是我的观点:

class IdentityIndividuForm(TemplateView) :

    template_name= "Identity_Individu_Form.html"
    model = Individu


    def ID_Recherche (request) :

        if 'recherche' in request.GET:

            query_Nom_ID = request.GET.get('q1NomID')
            query_Prenom_ID = request.GET.get('q1PrenomID')
            query_DateNaissance_ID = request.GET.get('q1DateNaissanceID')
            query_VilleNaissance_ID = request.GET.get('q1VilleNaissanceID')

            sort_params = {}

            Individu_Recherche.set_if_not_none(sort_params, 'Nom__icontains', query_Nom_ID)
            Individu_Recherche.set_if_not_none(sort_params, 'Prenom__icontains', query_Prenom_ID)
            Individu_Recherche.set_if_not_none(sort_params, 'DateNaissance__icontains', query_DateNaissance_ID)
            Individu_Recherche.set_if_not_none(sort_params, 'VilleNaissance__icontains', query_VilleNaissance_ID)

            query_ID_list = Individu_Recherche.Recherche_Filter(Individu, sort_params)

            context = {
                "query_Nom_ID" : query_Nom_ID,
                "query_Prenom_ID" : query_Prenom_ID,
                "query_DateNaissance_ID" : query_DateNaissance_ID,
                "query_VilleNaissanceID" : query_VilleNaissance_ID,
                "query_ID_list" : query_ID_list,
            }

            return render(request, 'Identity_Individu_Form.html', context)

我的url.py文件:

urlpatterns = [
    url(r'^Formulaire/Individus$', IdentityIndividuForm.as_view(), name="IndividuFormulaire"),
]

我的模板:

<div class="subtitle-form">
        <h4> <span class="glyphicon glyphicon-user"></span></span> Rechercher le n° identification d'un individu <a><span title="Outil permettant de vérifier si un individu est déjà enregistré dans la Base de Données Nationale. Saisir au minimum Nom et Prénom (entièrement ou en partie). Si la personne recherchée est trouvée, ne pas remplir le formulaire de création de fiche !"
        class="glyphicon glyphicon-info-sign"></a>
        </h4>
    </div>

    <div class="form">
        <form autocomplete="off" method="GET" action="">
            <input type="text" name="q1NomID" placeholder="Nom (ex:TEST) " value="{{ request.GET.q1NomID }}"> &nbsp;
            <input type="text" name="q1PrenomID" placeholder="Prénom (ex:Test)" value="{{ request.GET.q1PrenomID }}"> &nbsp; <p></p>
            <input id="id_search" type="text" name="q1DateNaissanceID" placeholder="Date de Naissance (YY-mm-dd) " value="{{ request.GET.q1DateNaissanceID }}"> &nbsp; <p></p>
            <input id="id_search" type="text" name="q1VilleNaissanceID" placeholder="Ville de Naissance" value="{{ request.GET.q1VilleNaissanceID }}"> &nbsp; <br></br>
            <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>
                </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.name }}</td>
                </tr>
                {% endfor %}
            </tbody>
        </table>
    </div>

我的剧本中有些东西是假的吗?我第一次尝试使用面向对象的对象。

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要重命名方法并更改返回

def ID_Recherche(request) :
    # YOUR CODE HERE
    return render(request, 'Identity_Individu_Form.html', context)

def get_context_data(self, **kwargs):
    request = self.request # Or just override it in your code
    # YOUR CODE HERE
    return context