django - 为两个使用相同模型的不同 View 集注册一个路由

标签 django django-rest-framework

我正在使用 Django REST 框架,并且我有这样的配置:

router.register(r'foo', FooViewSet)
router.register(r'foo-mini', MinFooViewSet)

FooViewSetMinFooViewSet 完全相同(“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/

相关文章:

python - Django、mod_wsgi 和虚拟环境

python - 非模型对象上的 Django Rest Framework 3 序列化程序?

python - Django 休息 : Add data to a "required" field automatically

python - Django Rest - "<ClientProfile: mike@tyson.com>"需要有字段 "clientprofile"的值,然后才能使用此多对多关系

python - Django Rest 框架 HyperLinkedRelatedField : allow id instead of url for POSTS requests

python - Django:模型之间的引用

python - Django 1.7 应用程序配置导入错误 : No module named appname. 应用程序

python - Django Nonrel - 无法登录开发服务器上的管理面板

python - Django 错误 __init__() 采用 1 个位置参数,但给出了 2 个

python - Django 反向外键