Я создал сайт, на котором мои технические специалисты отправляют свой инвентарь, используя модельные формы. Все работает по назначению, но я хотел бы добавить функцию отправки всей формы по электронной почте, когда они отправляют свой инвентарь. Это позволило бы моей команде инвентаризации проверять подсчеты без необходимости входа в систему и проверки веб-сайта.
Вот мой view.py, я знаю, что он работает, если я удалю биты электронной почты и сохраню в свои модели. В настоящее время возвращает ошибку: объект 'dict' не имеет атрибута 'splitlines'
form = Inventory_Form()
if request.method == 'POST':
form = Inventory_Form(request.POST)
tech_field = form.save(commit=False)
tech_field.technician = request.user
tech_field.save()
if form.is_valid():
form.save()
name = form.cleaned_data['initials_date']
from_email = 'operations@imbadatthis.com'
subject = 'Weekly Inventory', form.cleaned_data['initials_date']
message = form.cleaned_data
try:
send_mail(subject, message, from_email, ['myemail@n00b.com'], name)
except BadHeaderError:
return HttpResponse('Invalid header found.')
return response, redirect('inventory_submitted')
return render(request, 'inventory.html', {'form': form})
Не лучше ли сохранить форму в CSV, а затем прикрепить ее как электронное письмо? Я посмотрел на это, и с этой деталью тоже были проблемы.