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 %}  

Может ли кто-нибудь объяснить, почему это имеет смысл?

Мне пришлось потратить немало времени, чтобы понять, почему шаблоны не реагируют на "нормальные" параметры настройки.

Вернуться на верх