如何修复django appendslash运行时错误?

如何修复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'#使用

所以基本上我有一个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'#使用此名称命名应用程序,以便使用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')
]