Django-fr

Forum

#1 08-01-2011 16:13:51

Rémycube
Membre
Inscription : 05-01-2011
Messages : 23

utilisation de {{block.super}} limitée ?

Bonjour à tous,

je souhaite réaliser une recherche sur un tableau.
Je souhaite que ma vue "recherche" se rajoute en haut du tableau (appellé "liste" ici). J'ai donc écrit mes vues comme ceci:

[recherche.html]
{% extends "lieux/liste.html" %}
{% block content %}
ma page avec la fonction rechercher
{{ block.super }}
{% endblock %}

[liste.html]
{% extends "base.html" %}
{% block content %}
{% if liste_lieux %}
affichage de mon tableau
{% else %}
    <p>Aucun lieu n'est disponible.</p>
{% endif %}
{% endblock %}

le probleme, c'est que des donnés sont présentes dans mon tableau. Mon "liste.html" affiche bien mon tableau, mais mon "recherche.html" m'affiche directement mon else: "Aucun lieu n'est disponible" .
Pourquoi le {{block.super}}  ne récupère t-il pas mon tableau ?

Merci beaucoup
Rémy

Hors ligne

#2 08-01-2011 16:51:59

Romain
Membre
Inscription : 11-08-2010
Messages : 27

Re : utilisation de {{block.super}} limitée ?

Le 8 janv. 2011 à 16:13, Rémycube a écrit :

> Bonjour à tous,
>
> je souhaite réaliser une recherche sur un tableau.
> Je souhaite que ma vue "recherche" se rajoute en haut du tableau (appellé
> "liste" ici). J'ai donc écrit mes vues comme ceci:
>
> [recherche.html]
> {% extends "lieux/liste.html" %}
> {% block content %}
> ma page avec la fonction rechercher
> {{ block.super }}
> {% endblock %}
>
> [liste.html]
> {% extends "base.html" %}
> {% block content %}
> {% if liste_lieux %}
> affichage de mon tableau
> {% else %}
>    <p>Aucun lieu n'est disponible.</p>
> {% endif %}
> {% endblock %}
>
> le probleme, c'est que des donnés sont présentes dans mon tableau. Mon
> "liste.html" affiche bien mon tableau, mais mon "recherche.html" m'affiche
> directement mon else: "Aucun lieu n'est disponible" .
> Pourquoi le {{block.super}}  ne récupère t-il pas mon tableau ?

Si ton template "recherche.html" affiche la clause else, c'est donc que l'appel à {{ block.super }} fonctionne.
Vérifie que ta vue recherche fournisse, comme la vue liste, "liste_lieux" en contexte.

Hors ligne

#3 09-01-2011 19:32:59

Rémycube
Membre
Inscription : 05-01-2011
Messages : 23

Re : utilisation de {{block.super}} limitée ?

Effectivement j'avais oublié ce "détail"
(ajouter liste_lieux dans mon render_to_response)

Merci beaucoup
Rémy

Hors ligne

#4 09-01-2011 19:47:24

Rémycube
Membre
Inscription : 05-01-2011
Messages : 23

Re : utilisation de {{block.super}} limitée ?

Décidemment, {{block.super}} me pose encore un souci.

Suite à précédemment,  {{block.super}}  m'affiche désormais mon tableau mais en entier... car en effet mon tableau est écrit de cette manière:
[liste.html]
{% for lieu in liste_lieux %}
   <tr>
       <td>{{ lieu.titre }}</td>
       <td>{{ lieu.proprietaire }}</td>
[...]
   </tr>
    {% endfor %}

or désormais, je souhaite non pas afficher les lieux de "liste_lieux" mais de "results" dans ma [recherche.html].

Comment peut on appliquer la regle du DRY ici ? A l'aide de {{block.super}}  ? Mais comment changer juste la variable de la boucle for ?

Merci pour toutes vos précieuses réponses
Rémy

Hors ligne

#5 13-01-2011 20:48:27

afranck64
Membre
Inscription : 30-12-2010
Messages : 20

Re : utilisation de {{block.super}} limitée ?

Bonsoir,

Mais comment changer juste la variable de la boucle for ?

Je pense que les variables des templates sont non-modifiable dans le template.

Comment peut on appliquer la regle du DRY ici ?

Pourrais tu m'en dire plus? DRY ??? ni vu/ ni connu wink

Hors ligne

#6 14-01-2011 09:22:56

Rémycube
Membre
Inscription : 05-01-2011
Messages : 23

Re : utilisation de {{block.super}} limitée ?

DRY c'est Don't Repeat Yourself..., or ici, la seule solution, c'est de copier tout le contenu de mon [liste.html] dans mon [recherche.html] excepté la boucle....ce qui ne me ravi pas je dois dire... ( a chaque changement dans ma liste, j'aurai 2 fichiers à modifier...

Rémy

Hors ligne

#7 14-01-2011 09:26:34

Rémy HUBSCHER
Membre
Inscription : 11-08-2010
Messages : 161

Re : utilisation de {{block.super}} limitée ?

Rien ne t'empêche d'imbriquer tes blocks, d'hériter de liste.html et de
surcharger juste le block contenant ta boucle.

Le 14/01/2011 09:22, Rémycube a écrit :
> DRY c'est Don't Repeat Yourself..., or ici, la seule solution, c'est de
> copier tout le contenu de mon [liste.html] dans mon [recherche.html]
> excepté la boucle....ce qui ne me ravi pas je dois dire... ( a chaque
> changement dans ma liste, j'aurai 2 fichiers à modifier...
>
> Rémy
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#8 14-01-2011 16:48:19

Rémycube
Membre
Inscription : 05-01-2011
Messages : 23

Re : utilisation de {{block.super}} limitée ?

heu....j'ai le droit de dire que je n'ai rien compris ??

Ok c'est bon. J'ai juste placé un block additionnel au bon endroit.
Merci

Dernière modification par Rémycube (15-01-2011 18:40:47)

Hors ligne

Pied de page des forums