<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le Mad Blog &#187; template</title>
	<atom:link href="http://j-mad.com/blog/tag/template/feed/" rel="self" type="application/rss+xml" />
	<link>http://j-mad.com/blog</link>
	<description>juste un blog</description>
	<lastBuildDate>Fri, 18 May 2012 21:58:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Unpacking de tuples dans les templates django</title>
		<link>http://j-mad.com/blog/2010/02/12/unpacking-de-tuples-dans-les-templates-django/</link>
		<comments>http://j-mad.com/blog/2010/02/12/unpacking-de-tuples-dans-les-templates-django/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 10:59:41 +0000</pubDate>
		<dc:creator>J-Mad</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://j-mad.com/blog/?p=428</guid>
		<description><![CDATA[Il peut arriver que l&#8217;on est besoin de passer à ses templates des données sous la forme de tuple. Mais comment dans le template, récupéré les données qui sont dans le tuple ? Question importante s&#8217;il en est. Je vous rassure tout de suite, là réponse n&#8217;est pas &#8216;construire une classe qui sert à rien <a href='http://j-mad.com/blog/2010/02/12/unpacking-de-tuples-dans-les-templates-django/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Il peut arriver que l&#8217;on est besoin de passer à ses templates des données sous la forme de tuple. Mais comment dans le template, récupéré les données qui sont dans le tuple ?</p>
<p>Question importante s&#8217;il en est.</p>
<p>Je vous rassure tout de suite, là réponse n&#8217;est pas &#8216;construire une classe qui sert à rien pour pouvoir faire instance.nom_donneée_membre. &#8216;</p>
<p>Il y en en fait deux méthodes.</p>
<h1>Méthode 1</h1>
<p>on peut unpack (désolé je n&#8217;ai pas trouvé de traduction françaises pour unpack) les tuples en utilisant la notation .NumeroChamp. Petit exemple :</p>
<div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">tuples <span style="color: #66cc66;">=</span> <span style="color: black;">&#91;</span> <span style="color: black;">&#40;</span> foo<span style="color: #66cc66;">,</span> barr<span style="color: #66cc66;">,</span> tut <span style="color: black;">&#41;</span> <span style="color: #66cc66;">,</span> <span style="color: black;">&#40;</span> a <span style="color: #66cc66;">,</span> b <span style="color: #66cc66;">,</span> c <span style="color: black;">&#41;</span> <span style="color: #66cc66;">,</span> <span style="color: black;">&#40;</span> x<span style="color: #66cc66;">,</span> y <span style="color: #66cc66;">,</span> z <span style="color: black;">&#41;</span> <span style="color: black;">&#93;</span><br />
<br />
<span style="color: black;">&#123;</span>% <span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: #008000;">tuple</span> <span style="color: #ff7700;font-weight:bold;">in</span> tuples %<span style="color: black;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: black;">&#123;</span><span style="color: black;">&#123;</span> <span style="color: #008000;">tuple</span><span style="color: #ff4500;">.0</span> <span style="color: black;">&#125;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: black;">&#123;</span> <span style="color: #008000;">tuple</span><span style="color: #ff4500;">.1</span><span style="color: black;">&#125;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: black;">&#123;</span> <span style="color: #008000;">tuple</span><span style="color: #ff4500;">.2</span> <span style="color: black;">&#125;</span><span style="color: black;">&#125;</span><br />
<span style="color: black;">&#123;</span>% endfor %<span style="color: black;">&#125;</span></div></div>
<p>C&#8217;est déjà pas mal, mais c&#8217;est peu lisible. Il y a donc mieux, la méthode 2.</p>
<h2>Méthode 2</h2>
<p>Celle ci permet d&#8217;unpack directement vos tuples dans la boucle for, en donnant un nom à chaque variable. Dans ce cas là, il faut donc que chaque tuple est la même structure.</p>
<p>Imaginons par exemple que l&#8217;on construit des liens à la volée, avec des tuples qui contiendraient deux champ, l&#8217;url et le nom du lien, on aurait donc :</p>
<div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: black;">&#123;</span>% <span style="color: #ff7700;font-weight:bold;">for</span> url <span style="color: #66cc66;">,</span> name &nbsp;<span style="color: #ff7700;font-weight:bold;">in</span> tuples %<span style="color: black;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>a href<span style="color: #66cc66;">=</span><span style="color: #483d8b;">&quot;{{url}} &quot;</span><span style="color: #66cc66;">&gt;</span> <span style="color: black;">&#123;</span><span style="color: black;">&#123;</span>name<span style="color: black;">&#125;</span><span style="color: black;">&#125;</span><span style="color: #66cc66;">&lt;</span>/a<span style="color: #66cc66;">&gt;</span><br />
<span style="color: black;">&#123;</span>% endfor %<span style="color: black;">&#125;</span></div></div>
<p>Plutôt sympa non ?
<div class="TweetButton_button" style="float: right; margin-left: 10px;;height:20px;margin-bottom:5px;"><a href="http://twitter.com/share data-url="http://j-mad.com/blog/2010/02/12/unpacking-de-tuples-dans-les-templates-django/" data-text="Unpacking de tuples dans les templates django"data-count="vertical" data-via="mrjmad" data-lang="fr""><img src="http://j-mad.com/blog/wp-content/plugins/tweetbutton-for-wordpress/images/tweet.png" style="border:none" /></a></div>
 <p><a href="http://j-mad.com/blog/?flattrss_redirect&amp;id=428&amp;md5=cdda0929811056e6c786cd6af694f892" title="Flattr" target="_blank"><img src="http://j-mad.com/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://j-mad.com/blog/2010/02/12/unpacking-de-tuples-dans-les-templates-django/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=17478&amp;popout=1&amp;url=http%3A%2F%2Fj-mad.com%2Fblog%2F2010%2F02%2F12%2Funpacking-de-tuples-dans-les-templates-django%2F&amp;language=fr_FR&amp;category=text&amp;title=Unpacking+de+tuples+dans+les+templates+django&amp;description=Il+peut+arriver+que+l%26%238217%3Bon+est+besoin+de+passer+%C3%A0+ses+templates+des+donn%C3%A9es+sous+la+forme+de+tuple.+Mais+comment+dans+le+template%2C+r%C3%A9cup%C3%A9r%C3%A9+les+donn%C3%A9es+qui+sont+dans...&amp;tags=Django%2CPython%2Ctemplate%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

