python - Django URL 到 View 的映射

标签 python django django-rest-framework

我有一个 View 集和其中的一些方法,getschedule 就是其中之一。

def getschedule(self, request):

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

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

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

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

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

它有效并给了我回复。

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

我还想知道如何使我的第一种方法发挥作用。

最佳答案

如果您的 View 集已经绑定(bind)到路由器,那么您可以使用

@detail_route 或 @list_route 将其指向包含 View 集方法名称的 URL。

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

否则,使用扩展 APIView 的平面 View 类并将 URL 指向它是有意义的。

View 集主要在绑定(bind)到路由器时有用。

关于python - Django URL 到 View 的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36673277/

相关文章:

python - 使用 ChoiceField 时类型错误对象不可 JSON 序列化

python - Django REST 框架 API : PrimaryKeyRelatedField

python - 我们是否将空间滤波或频率滤波用于模糊,边缘检测?

python - Pymongo - 不允许修改 _id

python - 在/rest-auth/registration/account-confirm-email处配置不正确

javascript - Django 不断检查数据库中的新信息

python - 是否可以绘制像 GtkIconView 一样列出的 GtkTreeView?

python - 如何根据单元格值是否包含特定字符来迭代Excel工作表

python - Django - URL 路由问题(无法导入名称 'urls')

python - Django Rest 框架异常处理程序的位置