python - 视图集中的 Django Rest Framework 嵌套视图
问题描述
class GameInviteViewSet():
queryset = Game.objects.all()
serializer_class = GameSerializer
@action(
methods=['get'],
detail=True,
)
def invite(self, request, **id):
# Invite user here with endpoint /api/games/{id}/invite/{user}
我将如何制作上述端点?我可以 make /api/games/{id}/invite/
,但是在那之后我怎么能添加另一个参数。
或者,根据文档,默认情况下它会
{prefix}/{lookup}/{url_path}/
我想
{prefix}/{lookup}/{url_path}/{prefix2}/{lookup2}/{url_path2}/
或者
{prefix}/{lookup}/{url_path}/{lookup2}/{url_path2}/
这样我就可以做类似的事情
games/{id}/{invite}/{user}/
games/{id}/{kick}/{user}/
games/{id}/{players}/{user}/gamestats/
要注册我的路由器,我执行以下操作:
games/urls.py
:
router = routers.DefaultRouter()
router.register(r'^api/games', GameViewSet, 'games')
api/urls.py
: 从 games.urls 导入路由器作为游戏
router = routers.SimpleRouter()
urlpatterns += games.urls
解决方案
推荐阅读
- xml - 将数据从 XML 响应传输到 SoapUI 属性
- python-3.x - 如何根据某些列值比较两个数据框并在熊猫中删除它们
- android - Android of things - Raspberry Pi BLE 广告
- hadoop - Apache Pig:java.lang.OutOfMemoryError:Java 堆空间
- linux - 接受多个用户输入
- python - 我正在尝试使用预训练网络对花朵进行分类,但由于某种原因它没有训练
- mysql - sql 不在 GROUP BY 中使用查询生成器 laravel
- vba - Name new sheet after page table was on
- python - python很难设置一个lambda函数
- objective-c - Objective-C:For循环变量名