All articles, tagged with “commands”

Кастомные команды django

В джанго есть кастомные команды. Почему-то я открыл их для себя не так давно, о чём жалею. Вся прелесть кастомной команды в том, что она сама настраивает DJANGO_SETTINGS_MODULE. Раньше я делал это руками, что меня изрядно раздражало. А если скрипт лежал ещё и не в корне проекта, то приходилось также пихать в sys.path этот самый корень, что проимпортировать потроха проекта.

Допустим скрипт лежит в %ROOT%/app/bin/script.py. Раньше бы я написал такую кашу в начале этого скрипта:

import sys
import os
from os.path import join, dirname, realpath

sys.path.insert(0, dirname(dirname(realpath(__file__))))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings']

Как раз эту проблему кастомная команда решает автоматически. Очень удобно оформлять различные скрипты, которые запускаются по крону, в виде кастомных команд.