#django #django-forms
#django #django-forms
Вопрос:
У меня есть страница, на которой отображается отчет в соответствии с обоснованными критериями, на той же странице я хотел бы создать кнопку «отправить по электронной почте», как я могу воспользоваться тем же запросом?
Ответ №1:
Вы можете создать отдельную функцию, которая обрабатывает POST
запрос, а затем в вашей форме привязать action
атрибут к этой функции, например:
urls.py
urlpatterns = [
path('handle_second_form/', views.handle_second_form, name="handle_second_form"),
]
views.py
def handle_second_form(request):
if request.method == 'POST':
data = request.POST.get('data')
return render(request, 'your_template.html', {'data': data})
Затем в вашем шаблоне добавьте вторую форму, подобную этой:
index.html
<form action="{% url 'handle_second_form %}" method="post">
{% csrf_token %}
<input type="text" name="data" placeholder="Enter your data">
<button type="submit">Submit</button>
</form>
Комментарии:
1. Я очень рад вашему ответу, но я не понял, как я могу использовать объект, показанный в списке, в новом методе, когда я попытался использовать синтаксис «data = request.POST.get (‘my_data’)», объект стал нулевым. Я ищу элементы и отображаю список данных, те же данные, которые я хочу отправить по электронной почте с помощью кнопки «отправить»…
2. убедитесь, что данные, которые вы пытаетесь получить по значению здесь
request.POST.get('data')
, имеют то жеname
самое в вашем поле ввода, например, здесь я получаю данные сget('data')
помощью функции, и я используюname="data"
в своем поле ввода формы3. request.POST.get (‘data’) возвращает None, чего я не могу сделать, так это получить информацию с текущей страницы для выполнения действия кнопки в новом методе. «def send_report_renovacoes (запрос): если request.method == ‘GET’: data = request.POST.get (‘items’) »
4. как вы ожидаете получить
POST
данные запроса вGET
запросе, вы должны использоватьìf request.method == 'GET'