<?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>Gustavo Henrique.net &#187; manual</title>
	<atom:link href="http://www.gustavohenrique.net/brogui/tag/manual/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gustavohenrique.net/brogui</link>
	<description>Só mais um blog com Wordpress</description>
	<lastBuildDate>Tue, 29 Jun 2010 00:00:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Trechos traduzidos do manual do Django</title>
		<link>http://www.gustavohenrique.net/brogui/2008/11/trechos-traduzidos-do-manual-do-django/</link>
		<comments>http://www.gustavohenrique.net/brogui/2008/11/trechos-traduzidos-do-manual-do-django/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 23:00:40 +0000</pubDate>
		<dc:creator>gustavohenrique</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[traducao]]></category>

		<guid isPermaLink="false">http://www.gustavohenrique.net/site/?p=21</guid>
		<description><![CDATA[Acabo de &#8220;corrigir&#8221; o design do blog e espero que agrade mais ao público. Terminada essa fase de adptação do wordpress vou tentar publicar artigos com mais freqüência.
Há um tempo atrás traduzi uma pequena parte do manual do django, mais específicamete a que fala sobre Models e um trecho da parte que fala sobre o [...]]]></description>
			<content:encoded><![CDATA[<p>Acabo de &#8220;corrigir&#8221; o design do blog e espero que agrade mais ao público. Terminada essa fase de adptação do wordpress vou tentar publicar artigos com mais freqüência.<br />
Há um tempo atrás traduzi uma pequena parte do manual do django, mais específicamete a que fala sobre Models e um trecho da parte que fala sobre o Admin.<br />
A tradução não está perfeita, tão pouco revisada, mas acredito que possa ser compreendida pelos iniciantes no framework.<br />
<span id="more-21"></span></p>
<h2>Parte I</h2>
<p></p>
<h3>Escrevendo Models</h3>
<p>Um modelo é único, é uma representação dos seus dados. Ele contém os campos essenciais e comportamentos dos dados que você está armazenando. Em geral, cada modelo mapeia (representa) uma única tabela do banco de dados.</p>
<p>O Básico:</p>
<p>  * Cada modelo é uma classe Python que deriva da subclasse django.db.models.Model e representa uma tabela.<br />
  * Cada atributo do modelo representa um campo da tabela.<br />
  * Sendo assim, Django provê uma API de geração automática e acesso à banco de dados que permite realizar consultas (query).</p>
<p>Abaixo um exemplo de um model que representa uma Pessoa, contendo um Nome e Sobrenome:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">db</span> <span style="color: #ff7700;font-weight:bold;">import</span> models
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Pessoa<span style="color: black;">&#40;</span>models.<span style="color: black;">Model</span><span style="color: black;">&#41;</span>:
    Nome = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">30</span><span style="color: black;">&#41;</span>
    Sobrenome = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">30</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p><code>Nome</code> e <code>Sobrenome</code> são atributos, e cada atributo é uma referência à um campo em uma tabela.</p>
<p>Tradução do model acima em SQL:<br />
<code><br />
CREATE TABLE myapp_Pessoa (<br />
  "id" INTEGER NOT NULL PRIMARY KEY,<br />
  "Nome" VARCHAR(30) NOT NULL,<br />
  "Sobrenome" VARCHAR(30) NOT NULL<br />
); </code></p>
<p>O django adiciona como prefixo no nome da tabela o nome da sua aplicação criada com o manage.py startapp. Por exemplo, se sua aplicação se chama agenda, o nome da tabela será agenda_Pessoa. Para definir um nome para a tabela, deve utilizar a classe Meta e o atributo db_table. Ex.:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">class</span> Pessoa<span style="color: black;">&#40;</span>models.<span style="color: black;">Model</span><span style="color: black;">&#41;</span>:
  Nome = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">30</span><span style="color: black;">&#41;</span>
  Sobrenome = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">30</span><span style="color: black;">&#41;</span>
  <span style="color: #ff7700;font-weight:bold;">class</span> Meta:
    db_table = <span style="color: #483d8b;">&quot;tb_Pessoa&quot;</span></pre></td></tr></table></div>

<p>Quando não especificado um atributo para uma chave primária, o django automaticamente cria um campo com o nome &#8220;id&#8221; na tabela.<br />
Exemplo de definição de chave primária:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="python" style="font-family:monospace;">id_Pessoa = models.<span style="color: black;">AutoField</span><span style="color: black;">&#40;</span>primary_key=<span style="color: #008000;">True</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Compartilhe esse artigo</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F&amp;submitHeadline=Trechos+traduzidos+do+manual+do+Django&amp;submitSummary=" rel="nofollow" title="Adicionar ao&nbsp;Buzz"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/buzz.png" title="Adicionar ao&nbsp;Buzz" alt="Adicionar ao&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F&amp;title=Trechos+traduzidos+do+manual+do+Django" rel="nofollow" title="Adicionar ao&nbsp;Del.icio.us"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/delicious.png" title="Adicionar ao&nbsp;Del.icio.us" alt="Adicionar ao&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F&amp;title=Trechos+traduzidos+do+manual+do+Django" rel="nofollow" title="Adicionar ao&nbsp;digg"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/digg.png" title="Adicionar ao&nbsp;digg" alt="Adicionar ao&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F" rel="nofollow" title="Adicionar ao&nbsp;Facebook"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/facebook.png" title="Adicionar ao&nbsp;Facebook" alt="Adicionar ao&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F&amp;title=Trechos+traduzidos+do+manual+do+Django" rel="nofollow" title="Adicionar ao&nbsp;Google Bookmarks"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/google.png" title="Adicionar ao&nbsp;Google Bookmarks" alt="Adicionar ao&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F&amp;bm_description=Trechos+traduzidos+do+manual+do+Django" rel="nofollow" title="Adicionar ao&nbsp;Mister Wong"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Adicionar ao&nbsp;Mister Wong" alt="Adicionar ao&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F&amp;T=Trechos+traduzidos+do+manual+do+Django" rel="nofollow" title="Adicionar ao&nbsp;Netscape"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/netscape.png" title="Adicionar ao&nbsp;Netscape" alt="Adicionar ao&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F&amp;title=Trechos+traduzidos+do+manual+do+Django" rel="nofollow" title="Adicionar ao&nbsp;reddit"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/reddit.png" title="Adicionar ao&nbsp;reddit" alt="Adicionar ao&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F&amp;title=Trechos+traduzidos+do+manual+do+Django" rel="nofollow" title="Adicionar ao&nbsp;Stumble Upon"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Adicionar ao&nbsp;Stumble Upon" alt="Adicionar ao&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F" rel="nofollow" title="Adicionar ao&nbsp;Technorati"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/technorati.png" title="Adicionar ao&nbsp;Technorati" alt="Adicionar ao&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F" rel="nofollow" title="Adicionar ao&nbsp;Tip'd"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/tipd.png" title="Adicionar ao&nbsp;Tip'd" alt="Adicionar ao&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Trechos+traduzidos+do+manual+do+Django+@+http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F" rel="nofollow" title="Adicionar ao&nbsp;Twitter"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/twitter.png" title="Adicionar ao&nbsp;Twitter" alt="Adicionar ao&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Ftrechos-traduzidos-do-manual-do-django%2F&amp;t=Trechos+traduzidos+do+manual+do+Django" rel="nofollow" title="Adicionar ao&nbsp;Yahoo My Web"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Adicionar ao&nbsp;Yahoo My Web" alt="Adicionar ao&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.gustavohenrique.net/brogui/2008/11/trechos-traduzidos-do-manual-do-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
