Как стать автором
Обновить

Русские имена приложений в Django

Время на прочтение2 мин
Количество просмотров2.6K
Сия заметка, плод трудов хабра-человека sevenov, ему и почёт, дабы в будущем ему хватило кармы оставить свой след на хабре самому ;)

~~~~

Сегодня возник вопрос о том, как сделать вот так:

Django App Names

После получасового гугления наткнулся на несколько тикетов на code.djangoproject.com (ссылок сейчас не подкину, в истории искать лень). В общем, суть их в том, что нужно переписать чуть ли не половину Django. Немного подумав, я реализовал по своему. Возможно это кто-то уже делал, но на решение я не наткнулся.

Итак, начнем с того, что нужно написать свой тег. Я назвал его my_app_name. Код простой:

  1. #my_project/apps/lib/templatetags/app_tags.py
  2.  
  3. from django import template
  4. register = template.Library()
  5.  
  6. def my_app_name(app_name):
  7.   try:
  8.     app = __import__(app_name.lower())
  9.     return app.app_label
  10.   except:
  11.     return app_name
  12.  
  13. 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'Мое приложение'
Теги:
Хабы:
Всего голосов 53: ↑47 и ↓6+41
Комментарии12

Публикации

Истории

Работа

Python разработчик
137 вакансий

Ближайшие события