Шаблон Django — объект «Template» не имеет атрибута «split»

#django #django-templates #jinja2

#django #django-шаблоны #jinja2

Вопрос:

Я использую jinja2 для рендеринга шаблона в django:

Настройки шаблона:

 TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [],
        "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",
            ]
        },
    },
    {"BACKEND": "django.template.backends.jinja2.Jinja2", "DIRS": ["utils/"]},
]
  

Вызывающий код:

 html_template = get_template("email/contact/contact.html") #completes successfully - template definitely found

html_message = render_to_string(html_template, context)
  

Это выдает ошибку:

 AttributeError: 'Template' object has no attribute 'split'
  

Поиск в Google показывает решения только для:

Ошибка атрибута: объект ‘NoneType’ не имеет атрибута ‘split’

Это говорит о том, что шаблон не найден. Здесь это не так.

Ответ №1:

render_to_string принимает имя шаблона, а не объекта. Вам не нужно вызывать get_template .

 html_message = render_to_string("email/contact/contact.html", context)