<?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>Sun, 05 Sep 2010 10:36:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<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>
			<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: black;">&#91;</span> <span style="color: black;">&#40;</span> foo, barr, tut <span style="color: black;">&#41;</span> , <span style="color: black;">&#40;</span> a , b , c <span style="color: black;">&#41;</span> , <span style="color: black;">&#40;</span> x, y , z <span style="color: black;">&#41;</span> <span style="color: black;">&#93;</span><br />
<br />
<span style="color: black;">&#123;</span><span style="color: #66cc66;">%</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: #66cc66;">%</span><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>.0 <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>.1<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>.2 <span style="color: black;">&#125;</span><span style="color: black;">&#125;</span><br />
<span style="color: black;">&#123;</span><span style="color: #66cc66;">%</span> endfor <span style="color: #66cc66;">%</span><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: #66cc66;">%</span> <span style="color: #ff7700;font-weight:bold;">for</span> url , name &nbsp;<span style="color: #ff7700;font-weight:bold;">in</span> tuples <span style="color: #66cc66;">%</span><span style="color: black;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>a href=<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><span style="color: #66cc66;">%</span> endfor <span style="color: #66cc66;">%</span><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?url=http%3A%2F%2Fj-mad.com%2Fblog%2F2010%2F02%2F12%2Funpacking-de-tuples-dans-les-templates-django%2F&amp;text=Unpacking de tuples dans les templates django&amp;count=vertical&amp;via=mrjmad&amp;lang=en"><img src="http://j-mad.com/blog/wp-content/plugins/tweetbutton-for-wordpress/images/tweet.png" style="border:none" /></a></div>
]]></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>
		</item>
	</channel>
</rss>
