<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.jedryka.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Michał Jędryka - django</title>
 <link>http://www.jedryka.com/taxonomy/term/12/0</link>
 <description></description>
 <language>pl</language>
<item>
 <title>ReCaptcha by Riklaunim</title>
 <link>http://www.jedryka.com/content/recaptcha-ri</link>
 <description>&lt;p&gt;Serwis &lt;a href=&quot;http://www.rk.edu.pl&quot; target=&quot;_blank&quot;&gt;Riklaunima&lt;/a&gt; zna chyba każdy, kto próbował szukać w polskim internecie informacji o programowaniu dla www. Ostatnio Autor ten &lt;a href=&quot;http://www.python.rk.edu.pl/w/p/recaptcha-w-formularzach-django/&quot; target=&quot;_blank&quot;&gt;opublikował&lt;/a&gt; piękny snippet, którego mi bardzo w Django brakowało, pozwalający walidować formularze za pomocą captchy, czyli przepisywania tekstów z obrazków.&lt;/p&gt;
</description>
 <comments>http://www.jedryka.com/content/recaptcha-ri#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <category domain="http://www.jedryka.com/taxonomy/term/5">python</category>
 <pubDate>Tue, 08 Feb 2011 10:58:07 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">88 at http://www.jedryka.com</guid>
</item>
<item>
 <title>Jeszcze o błędach</title>
 <link>http://www.jedryka.com/content/jeszcze-o-bl</link>
 <description>&lt;p&gt;Znów straciłem wiele godzin w poszukiwaniu błędu, opiszę ten przykład, bo jest pouczający. Robiłem program partnerski do pewnego przedsięwzięcia. Jak to w tego typu programach bywa, trzeba było pobrać pewien kod z formularza i go zwalidować.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jedryka.com/content/jeszcze-o-bl&quot; target=&quot;_blank&quot;&gt;czytaj dalej&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.jedryka.com/content/jeszcze-o-bl#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <category domain="http://www.jedryka.com/taxonomy/term/5">python</category>
 <pubDate>Wed, 15 Dec 2010 05:15:02 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">84 at http://www.jedryka.com</guid>
</item>
<item>
 <title>Najgłupszy błąd świata</title>
 <link>http://www.jedryka.com/content/najglupszy-b</link>
 <description>&lt;p&gt;Dwa dni nad tym straciłem.&lt;br /&gt;
Było &lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;python geshifilter-python&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt; render_to_response&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;katalog/szablon.html&#039;&lt;/span&gt;, &lt;span style=&quot;color: black;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;zmienna&#039;&lt;/span&gt;, zmienna&lt;span style=&quot;color: black;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Powinno być oczywiście&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;python geshifilter-python&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt; render_to_response&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;katalog/szablon.html&#039;&lt;/span&gt;, &lt;span style=&quot;color: black;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;zmienna&#039;&lt;/span&gt;: zmienna&lt;span style=&quot;color: black;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Czyli &quot;:&quot; zamiast &quot;,&quot;. Interpreter nie wywalał błędu składniowego... A ja głupi, nie mogłem znaleźć :(&lt;/p&gt;
</description>
 <comments>http://www.jedryka.com/content/najglupszy-b#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <category domain="http://www.jedryka.com/taxonomy/term/5">python</category>
 <pubDate>Sun, 05 Dec 2010 07:13:07 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">83 at http://www.jedryka.com</guid>
</item>
<item>
 <title>Procesory kontekstu</title>
 <link>http://www.jedryka.com/content/procesory-ko</link>
 <description>&lt;p&gt;Sposób używania tzw. procesorów kontekstu w Django jest niestety niezbyt intuicyjny. Zacznijmy jednak od omówienia czym jest kontekst i procesor kontekstu w Django.&lt;br /&gt;
Jak wiadomo, Django oddziela warstwę prezentacji od logiki oprogramowania (oraz od danych).&lt;br /&gt;
Przypuśćmy, że mamy listę książek, przechowywaną w obiekcie &lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;geshifilter-text&quot;&gt;books&lt;/code&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jedryka.com/content/procesory-ko&quot; target=&quot;_blank&quot;&gt;czytaj dalej&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.jedryka.com/content/procesory-ko#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <pubDate>Wed, 27 Oct 2010 20:53:52 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">82 at http://www.jedryka.com</guid>
</item>
<item>
 <title>Integracja Django i TinyMCE</title>
 <link>http://www.jedryka.com/content/integracja-d</link>
 <description>&lt;p&gt;Tym razem nie piszę swojego tekstu, ale polecam świetny artykuł: &lt;a href=&quot;http://www.tynecki.pl/?p=867#more-867&quot; title=&quot;http://www.tynecki.pl/?p=867#more-867&quot;&gt;http://www.tynecki.pl/?p=867#more-867&lt;/a&gt;&lt;/p&gt;
</description>
 <comments>http://www.jedryka.com/content/integracja-d#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <category domain="http://www.jedryka.com/category/tagi/tinymc">tinymce</category>
 <pubDate>Wed, 29 Sep 2010 12:38:16 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">81 at http://www.jedryka.com</guid>
</item>
<item>
 <title>Odwrotna strona relacji</title>
 <link>http://www.jedryka.com/content/odwrotna-str</link>
 <description>&lt;p&gt;Przypuśćmy, że projektujemy prosty blog, w którym do każdego wpisu mogą być dołączane pliki rozmaitego typu (np. pdf, odt, jpg). Automatyczne wyszczególnienie wszystkich załączników pod wpisem (tak jak robi się to w mailach) jest w Django niezwykle proste i naturalne.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jedryka.com/content/odwrotna-str&quot; target=&quot;_blank&quot;&gt;czytaj dalej&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.jedryka.com/content/odwrotna-str#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/bazy-d">bazy danych</category>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <pubDate>Mon, 27 Sep 2010 09:04:59 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">80 at http://www.jedryka.com</guid>
</item>
<item>
 <title>Wielojęzyczny interfejs w Django</title>
 <link>http://www.jedryka.com/content/wielojezyczn</link>
 <description>&lt;p&gt;Coraz częściej przygotowujemy serwisy, które z założenia mają byc dostepne w różnych językach.&lt;br /&gt;
Ostatnio pisałem przy okazji pewnego projektu instrukcję prostej &quot;internacjonalizacji&quot;. Oto ona:&lt;br /&gt;
Krok 1&lt;br /&gt;
W pliku settings.py należy upewnić się, że USE_I18N jest ustawione na True (tak jest domyślnie)&lt;br /&gt;
Następnie należy dodać klasę LocaleMiddleware do MIDDLEWARE_CLASSES, np.:&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;python geshifilter-python&quot; style=&quot;font-family:monospace;&quot;&gt;MIDDLEWARE_CLASSES = &lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;
    &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Django.middleware.common.CommonMiddleware&amp;quot;&lt;/span&gt;,
    &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Django.contrib.sessions.middleware.SessionMiddleware&amp;quot;&lt;/span&gt;,
    &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Django.contrib.auth.middleware.AuthenticationMiddleware&amp;quot;&lt;/span&gt;,&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jedryka.com/content/wielojezyczn&quot; target=&quot;_blank&quot;&gt;czytaj dalej&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.jedryka.com/content/wielojezyczn#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <category domain="http://www.jedryka.com/category/tagi/i18n">i18n</category>
 <pubDate>Tue, 24 Aug 2010 18:57:34 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">79 at http://www.jedryka.com</guid>
</item>
<item>
 <title>Wyświetlenie zalogowanych użytkowników</title>
 <link>http://www.jedryka.com/content/wyswietlenie</link>
 <description>&lt;p&gt;Czasem konieczne jest wyświetlenie kto jest zalogowany. Oto króciutki procesor kontekstu dla Django, który to umożliwia:&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;python geshifilter-python&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;from&lt;/span&gt; django.&lt;span style=&quot;color: black;&quot;&gt;contrib&lt;/span&gt;.&lt;span style=&quot;color: black;&quot;&gt;sessions&lt;/span&gt;.&lt;span style=&quot;color: black;&quot;&gt;models&lt;/span&gt; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;import&lt;/span&gt; Session
&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;from&lt;/span&gt; django.&lt;span style=&quot;color: black;&quot;&gt;contrib&lt;/span&gt;.&lt;span style=&quot;color: black;&quot;&gt;auth&lt;/span&gt;.&lt;span style=&quot;color: black;&quot;&gt;models&lt;/span&gt; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;import&lt;/span&gt; User as StandardUser
&amp;nbsp;
&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;def&lt;/span&gt; whoisloggedin&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;request&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:
    sessions = Session.&lt;span style=&quot;color: black;&quot;&gt;objects&lt;/span&gt;.&lt;span style=&quot;color: black;&quot;&gt;all&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    ids = &lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;session.&lt;span style=&quot;color: black;&quot;&gt;get_decoded&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: black;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;_auth_user_id&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;for&lt;/span&gt; session &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;in&lt;/span&gt; sessions&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;
    logged_in = StandardUser.&lt;span style=&quot;color: black;&quot;&gt;objects&lt;/span&gt;.&lt;span style=&quot;color: #008000;&quot;&gt;filter&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;id__in=ids&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;logged_in&#039;&lt;/span&gt;:logged_in&lt;span style=&quot;color: black;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jedryka.com/content/wyswietlenie&quot; target=&quot;_blank&quot;&gt;czytaj dalej&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.jedryka.com/content/wyswietlenie#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <pubDate>Fri, 13 Aug 2010 04:55:47 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">78 at http://www.jedryka.com</guid>
</item>
<item>
 <title>Ucieczka z niewoli konwencji</title>
 <link>http://www.jedryka.com/content/ucieczka-z-n</link>
 <description>&lt;p&gt;Jak wiemy, współczesne frameworki webowe, takie jak Django czy (w jeszcze większym stopniu) Ruby on Rails, opierają się na konwencjach nazewniczych. Konwencje te ułatwiają życie programiście. Na przykład w Django tworzy się klasę (model) ORM, w której to klasie nazwy pól odpowiadają nazwom kolumn w tabeli bazy danych.&lt;br /&gt;
Tabelę tworzy sobie Django automagicznie właśnie na podstawie zdefiniowanej klasy modelu. Na przykład:&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;python geshifilter-python&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Product&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;models.&lt;span style=&quot;color: black;&quot;&gt;Model&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:
    price = models.&lt;span style=&quot;color: black;&quot;&gt;DecimalField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;max_digits=&lt;span style=&quot;color: #ff4500;&quot;&gt;8&lt;/span&gt;, decimal_places=&lt;span style=&quot;color: #ff4500;&quot;&gt;2&lt;/span&gt;, verbose_name=&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;cena&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jedryka.com/content/ucieczka-z-n&quot; target=&quot;_blank&quot;&gt;czytaj dalej&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.jedryka.com/content/ucieczka-z-n#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <category domain="http://www.jedryka.com/taxonomy/term/5">python</category>
 <pubDate>Tue, 20 Jul 2010 21:51:46 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">77 at http://www.jedryka.com</guid>
</item>
<item>
 <title>Jeszcze jeden powód by kochać Django</title>
 <link>http://www.jedryka.com/content/jeszcze-jede</link>
 <description>&lt;p&gt;Jeszcze nie przekonałeś się do Django? To wyobraź sobie, że przejąłeś słabo udokumentowany projekt internetowy po autorze i masz go ulepszać. Chcesz zmienić jakiś szczegół, np. napis.&lt;br /&gt;
Musisz dojść do tego skąd on się wziął. Który plik, który moduł w projekcie zawiera funkcję, która ten napis wygenerowała? Uwielbiasz to, prawda? &lt;em&gt;Co to za męka, co za dramat...&lt;/em&gt; mówiąc słowami Tuwima!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jedryka.com/content/jeszcze-jede&quot; target=&quot;_blank&quot;&gt;czytaj dalej&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.jedryka.com/content/jeszcze-jede#comments</comments>
 <category domain="http://www.jedryka.com/category/tagi/django">django</category>
 <category domain="http://www.jedryka.com/category/tagi/urlspy">urls.py</category>
 <pubDate>Fri, 09 Jul 2010 00:01:01 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">76 at http://www.jedryka.com</guid>
</item>
</channel>
</rss>
