{"id":413,"date":"2010-01-31T18:23:09","date_gmt":"2010-01-31T17:23:09","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=413"},"modified":"2010-02-12T09:49:42","modified_gmt":"2010-02-12T08:49:42","slug":"tagcon-ou-comment-ecrire-simplement-les-templatetags-cong","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/","title":{"rendered":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !!"},"content":{"rendered":"<p>Oui, je sais, je devrais renouveler un peu mon stock de blagues. Parce que mettre des cong \u00e0 la fin de tout et n&#8217;importe quoi, pour singer l&#8217;accent marseillais, \u00e7a commence \u00e0 &#8230;. Je sais. (j&#8217;en profite pour vous rappeler que le 24 et 25 avril, il va y avoir la <a title=\"Rencontre Django Fr\" href=\"http:\/\/rencontres.django-fr.org\/\">DjangoCong<\/a> \u00e0 Marseille, une super convention fr o\u00f9 \u00e7a va parler django, encore et encore).<\/p>\n<p>Et, oui, la django-app du mois de janvier arrive vraiment sur le fil, \u00e0 quelques heures du d\u00e9passement de d\u00e9lai. Mais faudra dire \u00e7a au cr\u00e9tin qui a d\u00e9cid\u00e9 qu&#8217;une journ\u00e9e \u00e7a ne serait que 24h et qu&#8217;il fallait obligatoirement dormir chaque nuit, ou presque \u2026 (bordeille comment je vais faire en f\u00e9vrier moi..)<\/p>\n<p>Enfin, je reste dans les d\u00e9lais, c&#8217;est le principal. Et pour le deuxi\u00e8me mois cons\u00e9cutif, je fais une petit entorse au principe de cette cat\u00e9gorie, vue que ce mois-ci, encore une fois, ce n&#8217;est pas une vrai django-app que je pr\u00e9sente, mais un &#8216;simple&#8217; module python.<\/p>\n<h1>0- Et \u00e7a sert \u00e0 quoi\u00a0 ?<\/h1>\n<p>En fait tagcon est &#8216;inutile&#8217; (donc indispensable vous allez me dire&#8230; ne niez pas, je vous ai tous entendu le dire&#8230;). Il sert simplement \u00e0 faciliter l&#8217;\u00e9criture des templatetags (et surtout des templates tags \u00e0 argument). On pourrait se dire que c&#8217;est assez inutile. Mais en fait, \u00e7a permet de gagner un peu de temps et de r\u00e9duire d&#8217;une fa\u00e7on assez int\u00e9ressante la taille de son code. Donc..<\/p>\n<p>Un petit exemple, tir\u00e9 de la doc, parce que comme me l&#8217;a fait remarquer daks (dont je conseille le <a href=\"http:\/\/blog.sietch-tabr.com\/\">blog<\/a>, qui vient d&#8217;arriver dans mes RSS) , \u00e7a manque :<\/p>\n<div class=\"codecolorer-container python default\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\"><span class=\"kw1\">from<\/span> django.<span class=\"me1\">contrib<\/span>.<span class=\"me1\">auth<\/span>.<span class=\"me1\">models<\/span> <span class=\"kw1\">import<\/span> User<br \/>\n<span class=\"kw1\">from<\/span> django.<span class=\"me1\">template<\/span> <span class=\"kw1\">import<\/span> Library<br \/>\n<span class=\"kw1\">import<\/span> tagcon<br \/>\n<br \/>\nregister <span class=\"sy0\">=<\/span> Library<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">class<\/span> UserListTag<span class=\"br0\">&#40;<\/span>tagcon.<span class=\"me1\">TemplateTag<\/span><span class=\"br0\">&#41;<\/span>:<br \/>\n&nbsp; &nbsp; limit <span class=\"sy0\">=<\/span> tagcon.<span class=\"me1\">IntegerArg<\/span><span class=\"br0\">&#40;<\/span>default<span class=\"sy0\">=<\/span><span class=\"nu0\">10<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">def<\/span> render<span class=\"br0\">&#40;<\/span><span class=\"kw2\">self<\/span><span class=\"sy0\">,<\/span> context<span class=\"br0\">&#41;<\/span>:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw2\">self<\/span>.<span class=\"me1\">resolve<\/span><span class=\"br0\">&#40;<\/span>context<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">yield<\/span> <span class=\"st0\">&quot;&lt;ul&gt;&quot;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">for<\/span> <span class=\"kw3\">user<\/span> <span class=\"kw1\">in<\/span> User.<span class=\"me1\">objects<\/span>.<span class=\"kw2\">all<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#91;<\/span>:<span class=\"kw2\">self<\/span>.<span class=\"me1\">args<\/span>.<span class=\"me1\">limit<\/span><span class=\"br0\">&#93;<\/span>:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">yield<\/span> <span class=\"st0\">&quot;&lt;li&gt;%s&lt;\/li&gt;&quot;<\/span> % <span class=\"br0\">&#40;<\/span><span class=\"kw3\">user<\/span>.<span class=\"me1\">username<\/span><span class=\"sy0\">,<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">yield<\/span> <span class=\"st0\">&quot;&lt;\/ul&gt;&quot;<\/span><\/div><\/div>\n<h1>1- O\u00f9 on le trouve, comment on l\u2019installe, tout \u00e7a quoi ?<\/h1>\n<p>Alors alors, sur le <a title=\"github de tagcon\" href=\"http:\/\/github.com\/korpios\/django-tagcon\">github qui va bien<\/a>. (une petite remarque qui a rien \u00e0 voir, je pr\u00e9f\u00e8re de loin bitbucket \u00e0 github \u2026 et pas juste parce que mercurial c&#8217;est mieux que git).<\/p>\n<p>Une fois qu&#8217;on a r\u00e9cup\u00e9rer le package (par fork si on a un compte github ou avec un petit tar.gz), il y a deux fa\u00e7on de l&#8217;installer:<\/p>\n<ul>\n<li>un petit python setup.py install<\/li>\n<li>en copiant directement le fichier base.py qui se trouve dans tagcon.tagcon (dans ce cas l\u00e0 on pourra renommer base.py en tagcon.py).<\/li>\n<\/ul>\n<h1>2- La documentation.<\/h1>\n<p>Alors l\u00e0&#8230; Il n&#8217;y a pas grand chose. Un fichier readme qui donne un petit exemple et c&#8217;est tout. Apr\u00e8s, il vous faudra lire les tests et le fichier source directement. Ce n&#8217;est pas donc super fourni, mais d&#8217;un autre cot\u00e9, vous me direz que le module est tellement simple que \u00e7a suffit. Et vous ne seriez pas loin d&#8217;avoir raison. Mais bon.<\/p>\n<h1>3- En conclusion<\/h1>\n<p>Au d\u00e9part, quand j&#8217;ai d\u00e9couvert ce petit module (je crois que je dois, encore une fois, remercier <a title=\"benoitc on twitter\" href=\"http:\/\/twitter.com\/benoitc\">benoitc<\/a> pour cela), je n&#8217;\u00e9tais vraiment pas convaincu de son utilit\u00e9. Il me semblait presque inutile et puis un peu restrictif en obligeant \u00e0 utiliser la fonction render (alors que j&#8217;ai plus l&#8217;habitude d&#8217;enregistrer les fichier template html avec le d\u00e9corateur inclustion_tag). Mais au final, on se ren compte que \u00e7a simplifie pas mal les choses et on y prend rapidement go\u00fbt.<\/p>\n<h1>4- dernier paragraphe compl\u00e8tement HS.<\/h1>\n<p>Ma liste de django-app \u00e0 tester est loin d&#8217;\u00eatre vide (avec entre autre piston, haystack,..) et \u00e7a ne risque pas de changer, vu que chaque semaine, je d\u00e9couvre une nouvelle app. Toutefois, j&#8217;\u00e9cris ces billets avant tout pour qu&#8217;ils soient utile . Donc, si vous connaissez des app que vous adorez et que vous aimerez faire d\u00e9couvrir \u00e0 tous. Laissez moi leur nom en commentaire et je m&#8217;efforcerais de les tester.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oui, je sais, je devrais renouveler un peu mon stock de blagues. Parce que mettre des cong \u00e0 la fin de tout et n&#8217;importe quoi, pour singer l&#8217;accent marseillais, \u00e7a commence \u00e0 &#8230;. Je sais. (j&#8217;en profite pour vous rappeler que le 24 et 25 avril, il va y avoir la DjangoCong \u00e0 Marseille, une &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !!<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[35],"tags":[],"class_list":["post-413","post","type-post","status-publish","format-standard","hentry","category-la-django-app-du-mois"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"billet parlant de django-tagcon petit module qui permet de simplifier l&#039;\u00e9criture des templatetags\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"J-Mad\"\/>\n\t<meta name=\"keywords\" content=\"la django-app du mois\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Le Mad Blog | juste un blog\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !! | Le Mad Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"billet parlant de django-tagcon petit module qui permet de simplifier l&#039;\u00e9criture des templatetags\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2010-01-31T17:23:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2010-02-12T08:49:42+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !! | Le Mad Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"billet parlant de django-tagcon petit module qui permet de simplifier l&#039;\u00e9criture des templatetags\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/#article\",\"name\":\"Tagcon, o\\u00f9 comment \\u00e9crire simplement les templatetags, cong !! | Le Mad Blog\",\"headline\":\"Tagcon, o\\u00f9 comment \\u00e9crire simplement les templatetags, cong !!\",\"author\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#organization\"},\"datePublished\":\"2010-01-31T18:23:09+01:00\",\"dateModified\":\"2010-02-12T09:49:42+01:00\",\"inLanguage\":\"fr-fr\",\"commentCount\":6,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/#webpage\"},\"articleSection\":\"La Django-app du mois\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/#listItem\",\"name\":\"D\\u00e9veloppement\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/#listItem\",\"position\":2,\"name\":\"D\\u00e9veloppement\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/#listItem\",\"name\":\"Python\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/#listItem\",\"position\":3,\"name\":\"Python\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/#listItem\",\"name\":\"Django\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/#listItem\",\"name\":\"D\\u00e9veloppement\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/#listItem\",\"position\":4,\"name\":\"Django\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/la-django-app-du-mois\\\/#listItem\",\"name\":\"La Django-app du mois\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/#listItem\",\"name\":\"Python\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/la-django-app-du-mois\\\/#listItem\",\"position\":5,\"name\":\"La Django-app du mois\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/la-django-app-du-mois\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/#listItem\",\"name\":\"Tagcon, o\\u00f9 comment \\u00e9crire simplement les templatetags, cong !!\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/#listItem\",\"name\":\"Django\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/#listItem\",\"position\":6,\"name\":\"Tagcon, o\\u00f9 comment \\u00e9crire simplement les templatetags, cong !!\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/la-django-app-du-mois\\\/#listItem\",\"name\":\"La Django-app du mois\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#organization\",\"name\":\"Le Mad Blog\",\"description\":\"juste un blog\",\"url\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/#author\",\"url\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/\",\"name\":\"J-Mad\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6eb44e8eb2792583de23c66deb033f8b5ef4f7f7c535464d77cb9f643012d138?s=96&d=retro&r=g\",\"width\":96,\"height\":96,\"caption\":\"J-Mad\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/#webpage\",\"url\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/\",\"name\":\"Tagcon, o\\u00f9 comment \\u00e9crire simplement les templatetags, cong !! | Le Mad Blog\",\"description\":\"billet parlant de django-tagcon petit module qui permet de simplifier l'\\u00e9criture des templatetags\",\"inLanguage\":\"fr-fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2010\\\/01\\\/31\\\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/#author\"},\"datePublished\":\"2010-01-31T18:23:09+01:00\",\"dateModified\":\"2010-02-12T09:49:42+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/\",\"name\":\"Le Mad Blog\",\"description\":\"juste un blog\",\"inLanguage\":\"fr-fr\",\"publisher\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !! | Le Mad Blog","description":"billet parlant de django-tagcon petit module qui permet de simplifier l'\u00e9criture des templatetags","canonical_url":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/","robots":"max-image-preview:large","keywords":"la django-app du mois","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/#article","name":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !! | Le Mad Blog","headline":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !!","author":{"@id":"https:\/\/j-mad.com\/blog\/author\/j-mad\/#author"},"publisher":{"@id":"https:\/\/j-mad.com\/blog\/#organization"},"datePublished":"2010-01-31T18:23:09+01:00","dateModified":"2010-02-12T09:49:42+01:00","inLanguage":"fr-fr","commentCount":6,"mainEntityOfPage":{"@id":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/#webpage"},"isPartOf":{"@id":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/#webpage"},"articleSection":"La Django-app du mois"},{"@type":"BreadcrumbList","@id":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/j-mad.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/#listItem","name":"D\u00e9veloppement"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/#listItem","position":2,"name":"D\u00e9veloppement","item":"https:\/\/j-mad.com\/blog\/category\/developpement\/","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/#listItem","name":"Python"},"previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/#listItem","position":3,"name":"Python","item":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/#listItem","name":"Django"},"previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/#listItem","name":"D\u00e9veloppement"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/#listItem","position":4,"name":"Django","item":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/#listItem","name":"La Django-app du mois"},"previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/#listItem","name":"Python"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/#listItem","position":5,"name":"La Django-app du mois","item":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/#listItem","name":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !!"},"previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/#listItem","name":"Django"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/#listItem","position":6,"name":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !!","previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/#listItem","name":"La Django-app du mois"}}]},{"@type":"Organization","@id":"https:\/\/j-mad.com\/blog\/#organization","name":"Le Mad Blog","description":"juste un blog","url":"https:\/\/j-mad.com\/blog\/"},{"@type":"Person","@id":"https:\/\/j-mad.com\/blog\/author\/j-mad\/#author","url":"https:\/\/j-mad.com\/blog\/author\/j-mad\/","name":"J-Mad","image":{"@type":"ImageObject","@id":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/6eb44e8eb2792583de23c66deb033f8b5ef4f7f7c535464d77cb9f643012d138?s=96&d=retro&r=g","width":96,"height":96,"caption":"J-Mad"}},{"@type":"WebPage","@id":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/#webpage","url":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/","name":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !! | Le Mad Blog","description":"billet parlant de django-tagcon petit module qui permet de simplifier l'\u00e9criture des templatetags","inLanguage":"fr-fr","isPartOf":{"@id":"https:\/\/j-mad.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/#breadcrumblist"},"author":{"@id":"https:\/\/j-mad.com\/blog\/author\/j-mad\/#author"},"creator":{"@id":"https:\/\/j-mad.com\/blog\/author\/j-mad\/#author"},"datePublished":"2010-01-31T18:23:09+01:00","dateModified":"2010-02-12T09:49:42+01:00"},{"@type":"WebSite","@id":"https:\/\/j-mad.com\/blog\/#website","url":"https:\/\/j-mad.com\/blog\/","name":"Le Mad Blog","description":"juste un blog","inLanguage":"fr-fr","publisher":{"@id":"https:\/\/j-mad.com\/blog\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Le Mad Blog | juste un blog","og:type":"article","og:title":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !! | Le Mad Blog","og:description":"billet parlant de django-tagcon petit module qui permet de simplifier l'\u00e9criture des templatetags","og:url":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/","article:published_time":"2010-01-31T17:23:09+00:00","article:modified_time":"2010-02-12T08:49:42+00:00","twitter:card":"summary","twitter:title":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !! | Le Mad Blog","twitter:description":"billet parlant de django-tagcon petit module qui permet de simplifier l'\u00e9criture des templatetags"},"aioseo_meta_data":{"post_id":"413","title":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !! | #site_title","description":"billet parlant de django-tagcon petit module qui permet de simplifier l'\u00e9criture des templatetags","keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[],"defaultGraph":"","defaultPostTypeGraph":""},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-20 21:02:54","updated":"2025-06-03 21:42:38","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\/category\/developpement\/\" title=\"D\u00e9veloppement\">D\u00e9veloppement<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/\" title=\"Python\">Python<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/\" title=\"Django\">Django<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/\" title=\"La Django-app du mois\">La Django-app du mois<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tTagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !!\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/j-mad.com\/blog"},{"label":"D\u00e9veloppement","link":"https:\/\/j-mad.com\/blog\/category\/developpement\/"},{"label":"Python","link":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/"},{"label":"Django","link":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/"},{"label":"La Django-app du mois","link":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/"},{"label":"Tagcon, o\u00f9 comment \u00e9crire simplement les templatetags, cong !!","link":"https:\/\/j-mad.com\/blog\/2010\/01\/31\/tagcon-ou-comment-ecrire-simplement-les-templatetags-cong\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-6F","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=413"}],"version-history":[{"count":3,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/413\/revisions"}],"predecessor-version":[{"id":425,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/413\/revisions\/425"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}