首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DRF反向找不到合适的路径

DRF反向找不到合适的路径
EN

Stack Overflow用户
提问于 2019-08-20 16:25:23
回答 1查看 1.4K关注 0票数 0

我正在使用Django Rest Framework,并且无法获得反向()来返回适当的路由以进行测试。在注册路线的路上,我一定犯了一个错误,但我似乎搞不清楚是什么。

核心/urls.py

代码语言:javascript
复制
class CoreRouter(DefaultRouter):
    def __init__(self):
        super(DefaultRouter, self).__init__()
        self.trailing_slash = '/?'

router = CoreRouter()
router.register(r'works', WorkViewSet, base_name='work')
router.registry.extend(fairs_exhibitions_router.registry)

urlpatterns = [
    re_path(r'^api/(?P<version>(v1))/', include(router.urls)),
    re_path(r'^api/(?P<version>(v1))/', include('fairs_exhibitions.urls')),
]

展览会/urls.py:

代码语言:javascript
复制
router = CoreRouter()

router.register(r'fairs', FairTagViewSet, base_name='fair')
router.register(r'exhibitions', ExhibitionTagViewSet, base_name='exhibition')

urlpatterns = [
    url(r'^', include(router.urls)),
]

(我包括/几条不相关的路线)

我可以很好地点击api/v1/fairs,但是当我尝试使用reverse()时,我似乎找不到集市的路径:

reverse(fairs)reverse(fairs-list)只是说它没有找到

我得到的最接近的是reverse('fair-list'),它产生了这个错误:

NoReverseMatch:反向表示“公平列表”,没有找到任何参数。4种模式尝试过:[‘api/(?p(V1))/博览会/?(pa-z0-9+)/?$’,api/(?p(V1))/?$‘,api/(?p(V1))/博览会/?(?pa-z0-9+)/?$’,‘api/(p(V1))/?

似乎我的问题可能与?$有关,但我不知道它是从哪里来的,也不知道如何处理它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-20 20:07:57

kwargs需要在url里。version需要被赋予相反的函数。

代码语言:javascript
复制
reverse('fair-list', kwargs={'version':'v1'})

欲了解更多细节,请访问urls实用函数

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57577905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档