V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Hopetree
V2EX  ›  问与答

django restframework 里面的 /api/ 这个根 router 的名称是什么?

  •  
  •   Hopetree · 2018-05-03 17:28:46 +08:00 · 1921 次点击
    这是一个创建于 2156 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先看代码,一下我的配置的 url,并且我知道 router 里面可以定义base_name来给 url 命名,不然就按照模型里面默认定义,我给 api 设置了 namespace,现在我想在前端模板中使用这些 api,就是使用{% url 'api.user' %}这种方式。现在的问题在于我只知道 /api/users/这种二级的 URL 的名称,但是不知道 /api/这个根目录的名称啊,我看官方的教程里面是去设置了一个 view 来展示这个根 url 的,所以当做一个普通的视图函数来添加到 urlpatterns 中去定义名称,但是既然 restframework 可以直接代开 /api/这个地址,那就说明这个 url 肯定是被定义过的,请问这个 url 的名称是什么,怎么使用{%url%}标签来得到这个地址?我目前只能使用硬地址

    router = DefaultRouter()
    router.register(r'users',api_views.UserListSet)
    router.register(r'articles',api_views.ArticleListSet)
    router.register(r'tags',api_views.TagListSet)
    router.register(r'categorys',api_views.CategoryListSet)
    router.register(r'timelines',api_views.TimelineListSet)
    
    urlpatterns = [
    ...
    url(r'^api/',include(router.urls,namespace='api')),
    ]
    
    2 条回复    2018-05-05 10:32:28 +08:00
    Hopetree
        1
    Hopetree  
    OP
       2018-05-03 17:35:06 +08:00
    换一种方式,就是如果我把 /api/放到 router 里面,比如这样

    ```
    router.register(r'^$',views,base_name='base')
    ```
    请问这个 views 是什么?难道要自己写吗
    Hopetree
        2
    Hopetree  
    OP
       2018-05-05 10:32:28 +08:00
    我已经在源码中找到了,名字叫 api-root
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3196 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 126ms · UTC 00:37 · PVG 08:37 · LAX 17:37 · JFK 20:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.