Django версия 3 прекратила необходимость регистрировать новые приложения в списке установленных приложений settings.py? - PullRequest
0 голосов
/ 20 марта 2020

Приложения, которые я создаю, работают без необходимости их регистрации в settings.py проекта.

Официальная документация также не регистрирует приложение опроса в INSTALLED_APPS. https://docs.djangoproject.com/en/3.0/intro/tutorial01/

Какая польза от регистрации приложений в INSTALLED_APPS файла settings.py, если он работает без регистрации?

1 Ответ

0 голосов
/ 20 марта 2020

В python все, что вы импортируете, известно коду, в котором оно импортировано, но обратное невозможно ...

Представьте, что у меня есть два файла

# a.py

def foo():
    ...

# b.py
from a import foo

def bar():
    foo()

В b.py я знаю о foo, но a.py не знает о bar или даже о том, что b.py существует.

Теперь, когда у вас есть маршрутизатор, вы импортируете свои представления, которые импортируют модели и др. c. Ваше полное приложение может работать с этим. Но для того, чтобы Django узнал о вашем приложении, ему нужна хотя бы какая-то ссылка на него. INSTALLED_APPS в настройках сообщает Django, какие приложения должны быть частью всего вашего Django проекта. По умолчанию в него входит несколько Django приложений. Не каждому проекту нужны все они, поэтому некоторые (или все) могут быть удалены. Аналогичным образом могут быть добавлены другие сторонние приложения.

Запуск Django команд управления, таких как migrate или collectstatic, будет работать только с приложениями, включенными в INSTALLED_APPS.

PS: Никогда не обращайтесь к INSTALLED_APPS в своем коде, а используйте реестр приложения через from django.apps import apps

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