Django URL to View映射

时间:2016-04-17 06:12:39

标签: python django django-rest-framework

我有一个viewset和一些方法,而getschedule就是其中之一。

def getschedule(self, request):

在urls.py中,如果我映射方法,则会像这样映射

url(r'^event/(?P<pk>[0-9]+)/getschedule/$', EventSingleViewSet.getschedule, name='event-schedule'),

我收到此错误 “getschedule()缺少1个必需的位置参数:'request' “

但如果我像这样进行映射,

url(r'^event/(?P<pk>[0-9]+)/getschedule/$', event_getschedule, name='event-schedule'),
......
event_getschedule = EventViewSet.as_view({
    'get': 'getschedule'
}, renderer_classes=[JSONRenderer])

它起作用并给我一个回应。

我不明白请求如何在第二种方法中传递给方法。需要帮助理解这一点。

我也想知道如何让我的第一个方法起作用。

1 个答案:

答案 0 :(得分:2)

如果您的视图集已绑定到路由器,则可以使用

@detail_route或@list_route将其指向一个带有您的viewset方法名称的网址。

检查此部分文档:http://www.django-rest-framework.org/tutorial/6-viewsets-and-routers/

否则,使用计划视图类扩展APIView并将URL指向它是有意义的。

视图集在绑定到路由器时非常有用。

相关问题