Django通过覆盖正则表达式部分来交换URL

时间:2017-04-23 21:54:49

标签: python django

请求[GET] 127.0.0.1:8000/restaurant/1时,我会得到一个干净的json和200状态代码

urlpatterns = [

url(r'^restaurant',views.Restaurant_List_Create.as_view(), name='all_restaurants'),
url(r'^restaurant/(?P<pk>\d+)',views.Restaurant_Retrive.as_view(), name='specified_restaurant'),

]

但是当我交换网址代码时,它会运行views.Restaurant_List_Create.as_view()(覆盖正则表达式网址)

urlpatterns = [

url(r'^restaurant/(?P<pk>\d+)',views.Restaurant_Retrive.as_view(), name='specified_restaurant'),    
url(r'^restaurant',views.Restaurant_List_Create.as_view(), name='all_restaurants'),


]

1 个答案:

答案 0 :(得分:2)

您的网址都匹配,因为您的网址末尾没有包含$ sign。

您可以按照以下方式更改它们:

urlpatterns = [
  url(r'^restaurant/(?P<pk>\d+)$',views.Restaurant_Retrive.as_view(), name='specified_restaurant'),    
  url(r'^restaurant$',views.Restaurant_List_Create.as_view(), name='all_restaurants'),
]