Евгений: возможно зацикливание происходит потому что my_form(request) находится в контектном процессоре и, заполняя форму из POST, рендерит render(request, 'single_index.html'), который (возможно) в свою очередь рекурсивно вызывает сам себя. А может и нет, не знаю точно.
Сделайте тупо по доке:
Объявите в forms.py Вашу форму.
Во views.py сделайте обработчик формы, который 1) выводит пустую форму 2) отправляет письмо если форма заполнена через POST и валидна. Не забывайте про render, redirect.
Когда все заработает нормально - можете сделать контектный процессор, чтобы выводить форму на любой странице. Еще раз подчеркиваю, что context processor не должен ничего обрабатывать, он лишь должен вернуть экземпляр формы.
Евгений: Если подключаете форму как context processor - то просто
def show_form() :
return {'form': ContactForm()}
и в шаблоне выводите форму. Но обработку должен делать view, не processor.
Непрограммист: Я не знаком со спецификой VPS с Windows. В принципе Вы можете арендовать VPS и поставить на него MS Office самому (тут надо думать насчет лицензии) или арендовать VPS с Office, например https://infobox.ru/vps/windows/, но тут будет стоить уже 400+800=1200руб в месяц. Поскольку у Вас документы редактируются Word'ом через COM, то соответственно Вы завязаны на Microsoft-стек. Если бы Вы использовали библиотеку, которая работает с doc/docx напрямую, то можно было бы развернуть и на Linux сервере, что было бы дешевле.
Я бы на вашем месте взял VPS и потратил бы вечер на настройку.
Если программа создает документ именно в Word (через COM) - то обязательно. Если либа типа python-docx - тогда не нужно, но и возможностей меньше и с совместимостью могут быть проблемы.
profhelp.com.ua/articles/%D0%BD%D0%B0%D1%81%D1%82%...