首页 > 解决方案 > 路线如何与视图集一起使用?路由器不会根据“basename”生成视图?

问题描述

在文档中它说在某些情况下可能无法在某些情况下生成视图,所以我有一个:AssertionError:basename未指定参数,并且无法从视图集中自动确定名称,因为它不必. queryset属性.

好的,所以我要插入一个基本名称:

router = DefaultRouter()
router.register("links", links_views.LinkViewSet, basename="links")
urlpatterns = [
    path("", include(router.urls))
]

因此,当我访问 url 时,它会引发错误:无法使用视图名称“链接详细信息”解析超链接关系的 URL。

也就是说,它会生成我插入到“basename”中的不受支持的视图(在这种情况下,它会生成单数名称的 vews,“link-detail”而不是“links-detail”)

如果我将“basename”更改为其他任何内容,它就不起作用。

但是当我简单地输入一个基本名称时,使用错误中出现的视图名称,导致:

router.register("links", links_views.LinkViewSet, basename="link")

我可以正常访问网址。

为什么会这样?我阅读了文档,但我无法理解这种行为

标签: django-rest-framework

解决方案


推荐阅读