base_name使用,以便路由器可以正确命名URL。您使用的DefaultRouter使用视图集的model或queryset属性。但是,由于您使用的viewets.ViewSet都不包含,因此路由器无法确定用于命名生成的URL模式的基本名称(例如,“
myobject-detail”或“ myobject-list”)
router.register(r'myObjects', views.MyObjectsViewSet, base_name='myobject')
这将导致创建以下URL模式:
^myObjects/{pk}/$名称:'myobject-detail'。
请注意,第一个参数
router.register必须
r'myObjects'不是,
r'myObjects/(?P<id>d+)/?$'因为路由器只需要前缀并且会照顾创建模式。总结一下,这是DRF文档的摘录
register()方法有两个强制性参数:
prefix-用于此路由集合的URL前缀。
viewset-视图集类。
(可选)您还可以指定其他参数:
base_name-
用于创建的URL名称的基础。如果未设置,则将基于视图集上的model或queryset属性自动生成该基名称。请注意,如果视图集不包含模型或查询集属性,则必须在注册视图集时设置base_name。
请参阅路由器文档:www.django-rest-framework.org/api-guide/routers



