Переопределение шаблонов виджетов Django по умолчанию

Я хочу переопределить шаблоны виджетов Django (2.01), потому что мне нужно добавить классы для каждого ввода, метки и позиционировать их по-разному

app
 - templates
 - app 
    - django
       - forms
           - widgets
             - input.html

enter image description here или

app
 - templates
   - django
      - forms
          - widgets
             - input.html

- каталог шаблона или проекта:

- templates
   - django
      - forms
          - widgets
             - input.html

ни один из них не работает (даже если я это, как рекомендуется в документах, и из ответа, который я видел на stackoverflow), он по-прежнему загружается по умолчанию.

будучи общими шаблонами виджетов, я предпочитая помещать их в каталог проекта шаблона, но из чего я Рид По умолчанию для поиска виджетов только в установленных приложениях.

1 ответов


похоже, это была проблема в Django 1.11.

переопределение шаблона виджета Django не выполняет поиск в каталоге шаблонов проектов. Как исправить?

это несколько раздражает. Это исправлено путем изменения настроек. Поэтому ваш сайт должен иметь эти параметры.

INSTALLED_APPS = [
    ...
    'django.forms',
    ...
]

FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'

к сожалению, вы не можете автоматизировать это одним из установленных приложений. Если установленное приложение переопределяет виджеты шаблонов django, его необходимо документировать и пользователи должны добавить этот код в настройках сайта.

вам не нужно ничего менять в настройках "шаблоны". Вот как выглядят мои шаблоны для справки.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]