Визуализация функции формы в нескольких шаблонах django - PullRequest
2 голосов
/ 03 марта 2020

Я написал функцию, в которой функция записывает подробности из формы и отправляет электронное письмо после отправки формы. Как сделать так, чтобы эта функциональность отображалась в нескольких шаблонах 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})

1 Ответ

1 голос
/ 09 марта 2020

Вы можете использовать тег include для этого. Попробуйте описанный ниже способ.

Рассмотрите приведенный ниже как ваш URL в 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>

...