В Django существует куча полезных функций и классов, которые помогают выполнять простые и полезные действия раз от разу. Предлогаю Вам свое видение этого списка:
- django.utils.datastructures.SortedDict
- django.utils.datastructures.MultiValueDict
- По умолчанию в Python объект
dict
не поддерживает сортировку ключей и несколько значений для одного ключа. Именно поддержку этих возможностей дают перечисленные выше классы. Например, поддержкаGET
,POST
,REQUEST
массивов в объектеrequest
реализована в видеMultiValueDict
объектов. - django.utils.dates
- Этот модуль содержит разнообразные массивы, которые используются для печати SelectDateWidget'а.
- django.utils.encoding.force_unicode
- Переводит любой Python объект в
unicode
. Так же переводит вunicode
любую модель Django у которой есть метод__unicode__
. - django.utils.html.clean_html
- Очищает переданный в функцию HTML строку, а именно:
- Конвертирует
<b>
и<i>
в<strong>
и<em>
. - Правильно кодирует все амперсанды.
- Удаляет все
"target"
аттрибуты с тегов<a>
. - Конвертирует явно заданные баллетсы (bullets) в неупорядоченные HTML списки.
- Удаляет из текста фрагменты
"<p> </p>"
, но только если они находятся в конце текста.
- Конвертирует
- django.utils.html.urlize
- Переводит все ссылки в тексте в
<a>
тэги. - django.utils.safestring.mark_safe
- Обозначает любой строковой объект, как безопасный для того, чтобы он мог был беспрепятственно распечатан в шаблоне без эскейпинга символов.
- django.utils.text.get_text_list
- Для описания работы этой функции и
doctest
'а хватит:>>> get_text_list(['a', 'b', 'c', 'd']) u'a, b, c or d' >>> get_text_list(['a', 'b', 'c'], 'and') u'a, b and c' >>> get_text_list(['a', 'b'], 'and') u'a and b' >>> get_text_list(['a']) u'a' >>> get_text_list([]) u''
Надеюсь, что Вам пригодится что-то из моего списка.