Как я могу получить имя приложения Django для файла внутри этого приложения? - PullRequest
5 голосов
/ 22 сентября 2011

Имея полный путь к файлу, который является частью приложения django, я хотел бы получить имя приложения Django.

Например, для этого пути:

/lib/python2.6/site-packages/django/contrib/auth/tests/auth_backends.py

Имя приложения auth.

Интересно, как это имя приложения Django могло быть программно рассчитано для конкретного имени файла внутри приложения.

Справочная информация: я хочу интегрировать вызов команды управления тестированием Django из редактора vim. Следует запустить тесты для принадлежащего в настоящее время редактируемого файла приложения.

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

Вы можете получить модуль по имени файла с помощью __import__.Вы можете получить имя пакета с атрибутом __package__.Затем вы можете проверить, какое приложение из settings.INSTALLED_APPS является подстрокой имени пакета.Это ваше приложение.

0 голосов
/ 01 октября 2014

Если у вас есть экземпляр класса в этом модуле, вы можете попробовать:

instance._meta.app_label
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...