Сия заметка, плод трудов хабра-человека sevenov, ему и почёт, дабы в будущем ему хватило кармы оставить свой след на хабре самому ;)
~~~~
Сегодня возник вопрос о том, как сделать вот так:
После получасового гугления наткнулся на несколько тикетов на code.djangoproject.com (ссылок сейчас не подкину, в истории искать лень). В общем, суть их в том, что нужно переписать чуть ли не половину Django. Немного подумав, я реализовал по своему. Возможно это кто-то уже делал, но на решение я не наткнулся.
Итак, начнем с того, что нужно написать свой тег. Я назвал его my_app_name. Код простой:
Остается только перегрузить шаблон admin/index.html. Загружаем наш тег
находим строку
и заменяем на
Осталось только в директории со своим Django-приложением в __init__.py прописать
~~~~
Сегодня возник вопрос о том, как сделать вот так:
После получасового гугления наткнулся на несколько тикетов на code.djangoproject.com (ссылок сейчас не подкину, в истории искать лень). В общем, суть их в том, что нужно переписать чуть ли не половину Django. Немного подумав, я реализовал по своему. Возможно это кто-то уже делал, но на решение я не наткнулся.
Итак, начнем с того, что нужно написать свой тег. Я назвал его my_app_name. Код простой:
- #my_project/apps/lib/templatetags/app_tags.py
-
- from django import template
- register = template.Library()
-
- def my_app_name(app_name):
- try:
- app = __import__(app_name.lower())
- return app.app_label
- except:
- return app_name
-
- my_app_name = register.simple_tag(my_app_name)
* This source code was highlighted with Source Code Highlighter.
Остается только перегрузить шаблон admin/index.html. Загружаем наш тег
{% load app_tags %}
находим строку
<caption><a href="{{ app.app_url }}" class="section">{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}</a></caption>
* This source code was highlighted with Source Code Highlighter.
и заменяем на
<caption><a href="{{ app.app_url }}" class="section">{% my_app_name app.name %}</a></caption>
* This source code was highlighted with Source Code Highlighter.
Осталось только в директории со своим Django-приложением в __init__.py прописать
app_label= u'Мое приложение'