Note: Je fournis l'extrait complet ci-dessous, car djangosnippets a été capricieux ces derniers temps.
Cool, quelqu'un a réellement trouvé mon extrait de code :-) L'utilisation de ma balise de modèle est plutôt simple.
Pour répondre à votre question, il n'y a pas de mécanisme "intégré" dans django pour gérer les fil d'ariane, mais il nous offre la prochaine meilleure chose : des balises de modèle personnalisées.
Imaginez que vous vouliez avoir des fils d'ariane comme ceci :
Services -> Programmation
Services -> Consulting
Ensuite, vous aurez probablement quelques urls nommées : "services", "programming", "consulting" :
(r'^services/$',
'core.views.services',
{},
'services'),
(r'^services/programming$',
'core.views.programming',
{},
'programming'),
(r'^services/consulting$',
'core.views.consulting',
{},
'consulting'),
Maintenant, à l'intérieur de votre modèle html (regardons simplement la page de consulting) tout ce que vous avez à faire est :
//consulting.html
{% load breadcrumbs %}
{% block breadcrumbs %}
{% breadcrumb_url 'Services' services %}
{% breadcrumb_url 'Consulting' consulting %}
{% endblock %}
Si vous voulez utiliser un certain type de texte personnalisé dans le fil d'ariane, et ne voulez pas le lier, vous pouvez utiliser la balise breadcrumb au lieu de cela.
//consulting.html
{% load breadcrumbs %}
{% block breadcrumbs %}
{% breadcrumb_url 'Services' services %}
{% breadcrumb_url 'Consulting' consulting %}
{% breadcrumb 'Nous sommes géniaux!' %}
{% endblock %}
Il y a des situations plus complexes où vous pourriez vouloir inclure un id d'un objet particulier, ce qui est également facile à faire. Voici un exemple plus réaliste :
{% load breadcrumbs %}
{% block breadcrumbs %}
{% breadcrumb_url 'Employés' liste_employés %}
{% if employé.id %}
{% breadcrumb_url employé.nom_entreprise détails_entreprise employé.id %}
{% breadcrumb_url employé.nom_complet détails_employé employé.id %}
{% breadcrumb 'Modifier Employé ' %}
{% else %}
{% breadcrumb 'Nouvel Employé' %}
{% endif %}
{% endblock %}
DaGood snippet de fils d'ariane
Fournit deux balises de modèle à utiliser dans vos modèles HTML : breadcrumb et breadcrumb_url. Le premier permet de créer une simple url, avec la partie texte et la partie url. Ou seulement du texte non lié (comme le dernier élément dans le fil d'ariane par exemple). Le deuxième peut en fait prendre l'url nommée avec des arguments ! De plus, il prend un titre en premier argument.
Il s'agit d'un fichier de templatetag qui doit être placé dans votre répertoire /templatetags.
Changez simplement le chemin de l'image dans la méthode create_crumb et vous êtes prêt !
N'oubliez pas de faire {% load breadcrumbs %} en haut de votre modèle HTML !
0 votes
Je m'en tiendrais à l'implémentation utilisée dans l'admin de django, comme suggéré par @otto-kekäläinen et @yeo. Peut-être que cela ressemble à votre méthode
block.super
, mais je ne peux pas vérifier, car ce lien ne fonctionne plus. Est-ce quelque chose comme ceci?