我有多个API,它们以前使用id
作为查找字段:
/api/organization/10
我有一个前端正在使用这些api。
我正在构建一个新的界面,出于某些原因,我想使用slug代替id:
/api/organization/my-orga
API是用Django Rest框架构建的。除了更改查找字段之外,api的行为应该保持不变。
有没有解决方案允许我的API同时使用aslug
和apk
?这两条路应该给他们同样的结果:
/api/organization/10
/api/organization/my-orga
以下是我的API定义:
# urls.py
router = DefaultRouter()
router.register(r'organization', Organization)
urlpatterns = router.urls
#view.py
class Organization(viewsets.ModelViewSet):
queryset = OrganisationGroup.objects.all()
serializer_class = OrganizationSerializer
# serializer.py
class OrganizationSerializer(PermissionsSerializer):
class Meta:
model = Organization
谢谢你的帮助。
我通过重写
retrieve
方法并根据任何模式检查pk
字段的值来解决类似的问题。例如,如果它只包含数字。试试这个
然后在视图中
希望这有帮助。
相关问题 更多 >
编程相关推荐