在文档中说,在某些情况下可能无法生成视图,因此我有一个:AssertionError:basename
参数未指定,并且无法从视图集中自动确定名称,因为它不需要. queryset
属性。
好的,所以我要插入一个基本名称:
router = DefaultRouter()
router.register("links", links_views.LinkViewSet, basename="links")
urlpatterns = [
path("", include(router.urls))
]
因此,当我访问该URL时,它会引发错误:无法使用视图名称“ link-detail”来解析超链接关系的URL。
也就是说,它生成我插入“ basename”中的不受支持的视图(在这种情况下,它以单数名称“ link-detail”而不是“ links-detail”生成vews)
如果我将“基本名称”更改为其他任何内容,则将无法使用。
但是当我只是输入一个基本名称时,使用出现在错误中的视图名称,结果是:
router.register("links", links_views.LinkViewSet, basename="link")
我可以正常访问网址。
为什么这样工作?我阅读了文档,但无法理解这种行为