-
Возможно ли получить имя текущего app во views?
-
В таком виде вопрос не имеет смысла, потому что в Джанге просто нет понятия "текущего" app. Опишите лучше вашу конкретную задачу.
-
Ну я хотел задать в settings список приложений, которые как для django так и для пользователя являются приложениями. Чтобы например в корневом urls.py по этому списку всё перенапрявлялось в urls.py этих приложений (без необходимости вручную прописывать для каждого).
Ну а потом во view определять имея текущего приложения, для определения текущего app например в меню.
Но наверно нужно просто в каждом view приложения создавать переменную с именем приложения. -
Я ничего не понял.
я хотел задать в settings список приложений,
Он есть — INSTALLED_APPS.
которые как для django так и для пользователя являются приложениями.
А чем они ещё могут являться?
Чтобы например в корневом urls.py по этому списку всё перенапрявлялось в urls.py этих приложений (без необходимости вручную прописывать для каждого)
А откуда корневой urls.py может знать, по каким URL'ам должны жить приложения?
Ну а потом во view определять имея текущего приложения,
Любая view — это часть какого-то приложения, поэтому нет такого процесса, как "определение имени". Если вы написали приложение "app1", то во всех его view вы и так знаете, что оно называется "app1".
для определения текущего app например в меню.
Я правильно понимаю, что все эти странные вопросы в итоге сводятся к тому, что вы хотите в шаблоне какой-то тег, который будет рисовать меню с текущим элементом в зависимости от запрошенного URL'а?
-
Ну например в INSTALLED_APPS у меня есть 3 app моих:
proj.blogs
proj.forums
proj.calc
+ приложения самого фреймфорка
А же создаю список, приложения которого являются так же и приложениями пользователя:
proj.blogs
proj.forums
(сюда же можно добавить и название приложения на русском языке например и ещё что-то)
и в ur
l Они будут выглядеть как /blogs/ , /forums/ -
Понятие "приложение пользователя" хоть где-нибудь описано? Или вы его выдумали сами, и с этого момента и начались ваши проблемы?
...просто выглядит как типичный случай усложнения программирования из-за безграмотного проектирования.
-
С примерами стало понятней. Ваше понимание того, что такое приложение, явно отличается от того, что этим словом называется в Джанго. Поэтому вас никто не понимает. По сути вы хотите, чтобы приложения регистрировались в проекте, определяли для себя корневые url'ы, title'ы страниц и т.д. В Джанго такого встроенного механизма нет, потому что приложения могут быть очень разными, и легко могут не подчинятся такой жёсткой схеме, как вы описываете. Прямой пример с этого сайта:
- Каталог программ — отдельное приложение, живущее под url'ом /soft/
- Часть простых страниц внутри /soft/ рисуется contrib-приложением flatpages
- Для одной единственной сложной страницы скачивания одной программы написано отдельное Джанго-приложение. Опять таки, под URL'ом /soft/
Это то, почему Джанго не навязывает никакой логики автоматической трансляции приложений в URL'ы — фреймворк даёт вам свободу действий. Поэтому вам тоже вряд ли стоит изобретать какую-то отдельную систему регистрации для своих приложений, потому что она наверняка окажется на порядок сложнее, чем использование простых джанговских механизмов по назначению.
Например, вы хотите по некому отдельному списку приложений автоматически построить urlconf. Хотя если вы просто руками напишите этот urlconf — он и будет этим самым списком приложений, имеющих свои URL'ы на сайте. Остальные задачи тоже стоит решать, когда вы точно будете понимать, в каком виде вы хотите их решить, а не пытаться придумать изначально универсальную систему.
-
Как раз в этом я и хотел убедиться. А то вдруг не обратил внимание в документации на какие-то способы, которые заложены в фреймворк и легко бы решали то, что я хочу.
Спасибо.

