snipt

Ctrl+h for KB shortcuts
Sign up for : store and share your own code snippets.
#25656

Python

Overriding app_label in Django Admin

"""
The following is a quick little template filter that can be used in the Django admin site to change the app_labels to whatever you like. Override the content/breadcrumb blocks of templates such as admin/index.html, admin/app_index.html, admin/change_form.html, and admin/change_list.html and apply the filter to wherever {{ app.name }} is used.
"""

### myapp/templatetags/adminfilters.py ###

from django import template
from django.template.defaultfilters import stringfilter

register = template.Library()

@register.filter(name='custom_app_label')
@stringfilter
def custom_app_label(value):
    custom_app_labels = {
        'Auth': 'Accounts', # key is default app_label, value is new app_label
        # Rinse, repeat 
    }
    return custom_app_labels.get(value, value)
https://snipt.net/embed/be1724fac88b0ecfe5a76579116d012d/
https://snipt.net/raw/be1724fac88b0ecfe5a76579116d012d/
be1724fac88b0ecfe5a76579116d012d
python
Python
21
2015-04-18T03:13:15
True
False
/api/public/snipt/25656/
overriding-app_label-in-django-admin
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a></pre></div></td><td class="code"><div class="highlight"><pre><span id="L-1"><a name="L-1"></a><span class="sd">&quot;&quot;&quot;</span> </span><span id="L-2"><a name="L-2"></a><span class="sd">The following is a quick little template filter that can be used in the Django admin site to change the app_labels to whatever you like. Override the content/breadcrumb blocks of templates such as admin/index.html, admin/app_index.html, admin/change_form.html, and admin/change_list.html and apply the filter to wherever {{ app.name }} is used.</span> </span><span id="L-3"><a name="L-3"></a><span class="sd">&quot;&quot;&quot;</span> </span><span id="L-4"><a name="L-4"></a> </span><span id="L-5"><a name="L-5"></a><span class="c">### myapp/templatetags/adminfilters.py ###</span> </span><span id="L-6"><a name="L-6"></a> </span><span id="L-7"><a name="L-7"></a><span class="kn">from</span> <span class="nn">django</span> <span class="kn">import</span> <span class="n">template</span> </span><span id="L-8"><a name="L-8"></a><span class="kn">from</span> <span class="nn">django.template.defaultfilters</span> <span class="kn">import</span> <span class="n">stringfilter</span> </span><span id="L-9"><a name="L-9"></a> </span><span id="L-10"><a name="L-10"></a><span class="n">register</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span><span class="n">Library</span><span class="p">()</span> </span><span id="L-11"><a name="L-11"></a> </span><span id="L-12"><a name="L-12"></a><span class="nd">@register.filter</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">&#39;custom_app_label&#39;</span><span class="p">)</span> </span><span id="L-13"><a name="L-13"></a><span class="nd">@stringfilter</span> </span><span id="L-14"><a name="L-14"></a><span class="k">def</span> <span class="nf">custom_app_label</span><span class="p">(</span><span class="n">value</span><span class="p">):</span> </span><span id="L-15"><a name="L-15"></a> <span class="n">custom_app_labels</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-16"><a name="L-16"></a> <span class="s">&#39;Auth&#39;</span><span class="p">:</span> <span class="s">&#39;Accounts&#39;</span><span class="p">,</span> <span class="c"># key is default app_label, value is new app_label</span> </span><span id="L-17"><a name="L-17"></a> <span class="c"># Rinse, repeat </span> </span><span id="L-18"><a name="L-18"></a> <span class="p">}</span> </span><span id="L-19"><a name="L-19"></a> <span class="k">return</span> <span class="n">custom_app_labels</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> </span></pre></div> </td></tr></table>
django, django-admin
Copyrighted, illegal, or inappropriate content? Email nick@snipt.net.