我正在使用 Django REST 框架,并且我有这样的配置:
router.register(r'foo', FooViewSet)
router.register(r'foo-mini', MinFooViewSet)
FooViewSet
和 MinFooViewSet
完全相同(“min”hones 继承自前者),使用相同的 queryset
但只需更改 serializer_class
.
MinFooViewSet
使用的序列化程序类从同一模型返回更少的字段。
我有一个奇怪的行为(可能是标准的,但我不明白):似乎每个模型我只能有一条路线。事实上,生成的 API 索引如下所示:
"foo": "http://localhost:8001/api/v1/foo-mini",
"foo-mini": "http://localhost:8001/api/v1/foo-mini",
所以两个端点都指向同一个 URL,使用最后一个 (MinFooViewSet
) 配置。
我错过了什么?
最佳答案
使用 base_name='something'
router.register(r'foo', FooViewSet,base_name='foo')
router.register(r'foo-mini', MinFooViewSet,base_name='foo_mini')
关于django - 为两个使用相同模型的不同 View 集注册一个路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44177664/