我有一个Django库应用程序,其中我有一个book_detail页面,用户可以在其中下载/通过电子邮件将该书的pdf链接发送给自己 .
发送此类电子邮件(工作正常,收到电子邮件), I want to display a pop-up or an alert message on that same html page instead of redirecting to some other page.
这是views.py代码:
def send_email(request):
try:
send_mail('Book request', 'email body', settings.EMAIL_HOST_USER, ['xyz@gmail.com'], fail_silently=False)
#this message is not getting displayed in the same html page
messages.add_message(request, messages.SUCCESS, 'Email sent successfully.')
except EmailMessage:
messages.add_message(request, messages.SUCCESS, 'Error has occurred')
HTML页面book_detail.html代码:
......
rest of the code....
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}
我使用提交按钮点击发送电子邮件:
urlpatterns = [
path('', views.index, name='index'),
......
path('email_book/', views.send_email, name='email_book'),
]
发生错误:
Please suggest what should be done, is there any other solution I can try for displaying an alert box/message on that same html page, without redirecting it to any other page.
谢谢!
UPDATE:
由于book_detail.html页面固有一个复杂的URL路由,因此当我在其他html页面中使用它时,会显示django消息:
def otherpage(request):
....
messages.add_message(...)
return render(request, 'other_page.html')
1 回答
Django中的视图函数应该总是返回一些
Response
对象