Vous n'êtes pas identifié(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
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
Effectivement j'avais oublié ce "détail"
(ajouter liste_lieux dans mon render_to_response)
Merci beaucoup
Rémy
Hors ligne
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
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
Hors ligne
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
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
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