我试图在单元测试中使用reverse()
,但它无法解析url。在
tests.py
:
from django.core.urlresolvers import reverse
from rest_framework import status
from rest_framework.test import APITestCase
class MyTest(APITestCase):
def test_cust_lookup(self):
url = reverse('v1:customer')
# Other code
测试用例在测试的第一行失败,错误如下:
^{pr2}$“0 patterns trusted”是否意味着测试甚至无法找到根urls.py
?是不是我搞错了?在
proj/settings.py
:
ROOT_URLCONF = 'proj.urls'
proj/myapp/urls.py
:
from django.conf.urls import url
import views
urlpatterns = [
url(r'cust/$', views.CustomerView.as_view(), name='customer')
]
proj/urls.py
:
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^api1/v1/', include('myapp1.urls', namespace='v1')),
url(r'^api2/v1/', include('myapp2.urls', namespace='v1'))
]
不要在同一个url名称空间下使用不同的应用程序,Django无法处理它,也不会告诉你这就是问题所在。将命名空间更改为每个应用程序的唯一名称空间。在
使用
reverse('app1-v1:customer')
反转url。在你的设置应该是
不是
^{pr2}$相关问题 更多 >
编程相关推荐