|
| 1 | +<h1>Django Templates</h1> |
| 2 | + |
| 3 | +<h2>NOTES</h2> |
| 4 | + |
| 5 | +<ul> |
| 6 | +<li>The name should map to the URL.</li> |
| 7 | +<li>No distro or app name prefix, they are namespaced by their dirs already</li> |
| 8 | +<li>Since templates are made in python, the are <code>named_with_underscores.html</code> (not web style dashes).</li> |
| 9 | +</ul> |
| 10 | + |
| 11 | +<h2>URL PARAMETERS IN THE TEMPLATE</h2> |
| 12 | + |
| 13 | +<ul> |
| 14 | +<li>All views (except <code>generic.View</code>) from <code>django.forms.generic</code> inherit from <code>ContextMixin</code></li> |
| 15 | +<li><p><code>ContextMixin</code> defines the method <code>get_context_data</code>:</p> |
| 16 | + |
| 17 | +<div class="codehilite"><pre><span></span><code> <span class="k">def</span> <span class="nf">get_context_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
| 18 | + <span class="n">kwargs</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="s1">'view'</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span> |
| 19 | + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">extra_context</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> |
| 20 | + <span class="n">kwargs</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">extra_context</span><span class="p">)</span> |
| 21 | + <span class="k">return</span> <span class="n">kwargs</span> |
| 22 | +</code></pre></div> |
| 23 | + |
| 24 | +<p>So when overriding one must be careful to extends <code>super</code>'s <code>kwargs</code>:</p> |
| 25 | + |
| 26 | +<div class="codehilite"><pre><span></span><code> <span class="k">def</span> <span class="nf">get_context_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
| 27 | + <span class="n">kwargs</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">get_context_data</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> |
| 28 | + <span class="n">kwargs</span><span class="p">[</span><span class="s1">'page_title'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"Documentation"</span> |
| 29 | + <span class="k">return</span> <span class="n">kwargs</span> |
| 30 | +</code></pre></div></li> |
| 31 | +</ul> |
0 commit comments