Django REST:URL反转中的奇怪点

2024-07-03 07:54:39 发布

您现在位置:Python中文网/ 问答频道 /正文

router代码:

...
domain_nested_routers_lookup = 'domain'
router = routers.DefaultRouter()
router.register('accounts', DomainViewSet)
...
domains_router = NestedSimpleRouter(router, r'accounts', lookup=domain_nested_routers_lookup)

这样做的原因是projectoldapi使用了术语domain,它没有被改为account。在

serializer代码:

^{pr2}$

现在的问题是这个代码:

self.api_reverse('domain-detail', self.domain.id)

退货:

u'/rest/accounts/domain_0.1'

我不明白是什么魔法添加了.1(1是domain对象的id)。在

正确的输出应该是:

u'/rest/accounts/domain_0


Tags: 代码selfregisterrestiddomainlookupnested
2条回答

在从2ps寻求答案和帮助后,我找到了方法:

self.api_reverse('domain-detail'

在我的例子中,我必须更好地了解api_reverse是如何定义的。在

因此,如果在URL路由中定义了参数,则可以传入一组参数来反转。我以前没有使用过django REST,但我会尝试命名您的参数:

self.api_reverse('domain-detail', args=[ self.domain.id ])

或者-

^{2}$

这可能会产生一条如下路径:

/rest/accounts/domain_0/1

相关问题 更多 >