Как получить переменные между фигурными скобками в шаблоне django в представлениях django?

У меня есть файл шаблона django. Теперь я хочу получить весь список переменных, которые находятся между фигурными скобками. Я думаю, что это возможно с помощью регулярных выражений. И я читал о регулярных выражениях. Но там нет ни одной функции, которую я нашел полезной.

фрагмент кода шаблона:

           <tr><td>
                Dear Candidate,<br/>
                Welcome to Creative Talent Management!<br/>
                We have created an account for you. Here are your details:<br/>
                Name:{{name}}<br/>
                Email:{{email}}<br/>
                Organization:{{organization}}<br/>
                Password:{{password}}<br/>
            </td></tr>

Я хочу получить имя, email, организацию, пароль в моей функции python.

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

@receiver(post_save,sender=EmailTemplate)
def html_file_variables_reader(sender, instance, created, **kwargs):
    if created:
        temp_path = str(instance.html_template)
        temp_path = temp_path.split("templates/emails/")[1]
        print("temp_path :",temp_path)
        html_file = codecs.open(BASE_DIR / temp_path, 'r')
        print("html AAGAI ",html_file.read())
    else:
        pass

FileNotFoundError: [Errno 2] No such file or directory: '/home/ahmed/bitbucket/develop/backend/email_test_template_gBC7WVP.html

Файл, который завершен правильно.

Это как бы от обратного к прямому. Обычно вы передаете все переменные, которые могут быть использованы из вашего представления, в шаблон рендеринга через контекст. Не имеет значения, если одна или несколько переменных контекста не используются шаблоном. Конечно, у вас должен быть тест, который отлавливает ошибки в написании имен переменных ({{usernmae}} будет отображаться как нулевая строка без ошибок ).

Для проверки шаблона вы можете просто grep '{{' some_template.html, или написать что-нибудь в Python, чтобы получить (скажем) отсортированный по алфавиту список имен переменных. Но это помощь в разработке программы, а не часть кода сервера Django.

Если бы вы действительно хотели, вы могли бы просто открыть файл шаблона и написать аналогичный Python-код как часть вашего представления. Но зачем?

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