首页 > 解决方案 > 在 Django url 中的 as_view 中指定方法。(获取、发布等)

问题描述

我有一些带有(APIView)的类,显然我将它们包含在我的 urls.py 中。问题是,如果有办法指定方法,当我使用这样的构造时:

path('mods/mix', MixCUD.as_view()),
path('mods/mix/update/<int:mixId>', MixCUD.as_view()),
path('mods/mix/delete/<int:mixId>', MixCUD.as_view()),

因为,如果我理解正确,我可以从 mods/mix/update/int:mixId 地址调用 MixCUD 的 delete 方法。

所以我需要这样的东西:

path('mods/mix', MixCUD.as_view([POST])),
path('mods/mix/update/<int:mixId>', MixCUD.as_view([UPDATE])),
path('mods/mix/delete/<int:mixId>', MixCUD.as_view([DELETE])),

我无法将它们全部更改为一个地址,因此我必须以某种方式进行管理。

标签: djangodjango-views

解决方案


您可以使用传递额外选项来查看函数

path('mods/mix', MixCUD.as_view(), {"action": "POST"}),
path('mods/mix/update/<int:mixId>', MixCUD.as_view(), {"action": "UPDATE"}),
path('mods/mix/delete/<int:mixId>', MixCUD.as_view(), {"action": "DELETE"}),

然后你可以self.kwargs在你的视图中使用,输出将是::

{"action": "POST"}

推荐阅读