如何修复django appendslash运行时错误?
所以基本上我有一个pdf.html,它是由我的视图调用的 我的pdf.html格式如下:如何修复django appendslash运行时错误?,django,Django,所以基本上我有一个pdf.html,它是由我的视图调用的 我的pdf.html格式如下: <form action="{% url "soapdf:submitemail" %}" method="post"> {% csrf_token %} {{ emailform }} <input type="submit" value="Submit"> </form> 我的URL.py如下所示: app_name='soapdf'#使用
<form action="{% url "soapdf:submitemail" %}" method="post">
{% csrf_token %}
{{ emailform }}
<input type="submit" value="Submit">
</form>
我的URL.py如下所示:
app_name='soapdf'#使用此名称命名应用程序,以便使用url标记方案
urlpatterns = [
path('',views.get_pdf,name='get_pdf'),
path('submitemail/',views.submitemail,name='submitemail')
]
但是,单击submit按钮时,出现以下错误。我的重定向有斜杠,但仍然不起作用
RuntimeError at /submitemail
You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to localhost:8000/submitemail/ (note the trailing slash), or set APPEND_SLASH=False in your Django settings.
关于如何修复此运行时错误的任何想法在主
urls.py
中添加尾随斜杠,其中包含此get\u pdf url
我想这就像
urlpatterns =[
path('get_pdf',include('yourapp.urls')),
]
而且会的
urlpatterns =[
path('get_pdf/',include('yourapp.urls')),
]
如果SEO不重要,你可以使用斜杠也可以不使用斜杠。在Django 3.X中:
from django.urls import re_path
urlpatterns = [
re_path('^/?$',views.get_pdf,name='get_pdf'),
re_path('^submitemail/?$',views.submitemail,name='submitemail')
]
但如果SEO很重要,最好通过Nginx或其他方式自动添加斜杠。如果您确实希望避免URL以斜杠结尾。您可以在settings.py中设置
APPEND\u SLASH=False
。我希望url以斜杠结尾。我是这样寄的。它是一个以斜杠结尾的post请求。一个解决方案是将{%url“soapdf:submitemail”%}/
(注意url标记后面的斜杠)。这是我添加尾部url时生成的url。
from django.urls import re_path
urlpatterns = [
re_path('^/?$',views.get_pdf,name='get_pdf'),
re_path('^submitemail/?$',views.submitemail,name='submitemail')
]