Редакция статического текста в админке Django

категория: Django
Часто встречаюсь с такой ситуацией, когда есть небольшие куски статического текста на страницах сайта, которые заказчик хочет видеть в админке и иметь возможность их редактировать. Использовать flatpages джанги тут не подходит, можно создать модель и подключить ее к админке, а потом тексты вытягивать в переменные или собственные темплейт теги, ну или еще что-то придумать. А можно просто установить django-flatblocks:
pip install django-flatblocks
Дальше просто добавляем в settings.py и запускаем syncdb:
INSTALLED_APPS = (
	...
	"flatblocks",
	...
)
Добавляем в админку кусок текста и вставляем его в нужном месте через темплейт тег:
{% load flatblock_tags %}
...
{% flatblock "my_text" %}
За более подробной информацией читайте https://github.com/funkybob/django-flatblocks. Правда если у вас мультиязычный сайт, не пытайтесь запихивать в flatblock конструкции типа {% trans "какой-то текст" %}, он так и выведет. Я, к примеру, сделал просто три текста на трех языках и вывожу их сравнивая с локалью пользователя. Выглядит это так:
{% if request.session.django_language == "en" %}
	{% flatblock "my_text_en" %}
{% elif request.session.django_language == "ru" %}
	{% flatblock "my_text_ru" %}
{% else %}
	{% flatblock "my_text_ua" %}
{% endif %}
Наслаждайтесь, это django :)


blog comments powered by Disqus