Django allauth settings.SOCIALACCOUNT_ENABLED перезаписывается?
django-allauth предоставляет параметр seettings SOCIALACCOUNT_ENABLED, который используется в urls.py для добавления условно socialaccount-урлов:
allauth/urls.py:
if app_settings.SOCIALACCOUNT_ENABLED:
urlpatterns += [path("social/", include("allauth.socialaccount.urls"))]
в html-шаблонах используется тот же параметр, например, в
allauth/templates/account/login.html:
{% if SOCIALACCOUNT_ENABLED %}
{% include "socialaccount/snippets/login.html" with page_layout="entrance" %}
{% endif %}
НО: в шаблонах он не отражает settings.SOCIALACCOUNT_ENABLED, а берется из статуса apps.is_installed:
allauth/app_settings.py:
class AppSettings(object):
....
@property
def SOCIALACCOUNT_ENABLED(self):
return apps.is_installed("allauth.socialaccount")
....
Это означает вкратце следующее:
settings.SOCIALACCOUNT_ENABLED
-> effect on included allauth url patterns
settings.INSTALLED_APPS[..., 'allauth.socialaccount'..]
-> effect on html templates {% if SOCIALACCOUNT_ENABLED %}
Может ли кто-нибудь объяснить, почему это имеет смысл?
Мне пришлось потратить немало времени, чтобы понять, почему шаблоны не реагируют на "нормальные" параметры настройки.