从另一个视图调用视图

Call view from another view

我有一个视图集,其中一个视图为:

@list_route(methods=["get"], url_path="special")
def special():
    pass

我从另一个角度称这个视图为:

view_fn = viewset.as_view({'get': 'list'})
response = view_fn(request)

但它不会调用映射到 "/special/"special 函数,而是调用映射到 "/" 的函数。我想我需要以某种方式传递 url_path 或使用视图 name 获取视图?但是,我也不知道该怎么做。

这将不起作用,因为您需要将该路线映射到操作。

在当前形式中,您将默认列表操作映射到 get 方法。

以下代码应该有效:

view_fn = viewset.as_view({'get': 'special'})