Clean up Django 2 path backslashes

In Django 2, routes defines via urls.path are aggresively escaped when converted into regex.

This is a naive fix which unescapes all characters outside capture groups, but in the context of OpenAPI is okay because regular expressions inside paths are not supported anyway.

This issue affects django-rest-framework as well, as outlined in encode/django-rest-framework#5672, encode/django-rest-framework#5675.
This commit is contained in:
Cristi Vîjdea
2017-12-18 00:58:02 +01:00
parent f6c30181fe
commit 521172c195
5 changed files with 63 additions and 9 deletions
+14 -5
View File
@@ -1,8 +1,17 @@
from django.conf.urls import url
import django
from . import views
urlpatterns = [
url(r'$', views.SnippetList.as_view()),
url(r'^(?P<pk>[0-9]+)/$', views.SnippetDetail.as_view()),
]
if django.VERSION[:2] >= (2, 0):
from django.urls import path
urlpatterns = [
path('', views.SnippetList.as_view()),
path('<int:pk>/', views.SnippetDetail.as_view()),
]
else:
from django.conf.urls import url
urlpatterns = [
url('^$', views.SnippetList.as_view()),
url(r'^(?P<pk>\d+)/$', views.SnippetDetail.as_view()),
]
+1 -1
View File
@@ -4,5 +4,5 @@ from users import views
urlpatterns = [
url(r'^$', views.UserList.as_view()),
url(r'^(?P<pk>[0-9]+)/$', views.user_detail),
url(r'^(?P<pk>\d+)/$', views.user_detail),
]