我编写了一个函数,该函数从表单捕获详细信息并在提交表单后发送电子邮件。我如何才能将此功能呈现给多个Django模板,在其中我可以调用该表单并执行此操作。 下面是相关的功能。
def emailView(request):
if request.method == 'GET':
form = myform()
else:
form = myform(request.POST)
if form.is_valid():
subject='form Details'
mobile = form.cleaned_data['mobile']
email = form.cleaned_data['email']
dummy = '\nMobile: '+mobile+'\nEmail: '+email'
try:
send_mail(subject, dummy, 'dummy@gmail.com', ['dummy1@gmail.com', 'dummy2@gmail.com'])
messages.success( request, " Thank you !! For contacting.')
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('email')
return render(request, "my_app/email.html", {'form': form})
答案 0 :(得分:2)
您可以使用include标记来这样做。请尝试以下方式。
将以下内容作为您在urls.py中的网址
path('your_form/', views.emailView, name='myform'),
您可以使用以下标记调用函数的任意数量的模板。
#template1.html
<form method="post" action="{% url 'myform' %}">
{% include 'yourapp/email.html' %}
<button type="submit">Submit</button>
#template2.html
<form method="post" action="{% url 'myform' %}">
{% include 'yourapp/email.html' %}
<button type="submit">Submit</button>