小编ray*_*jay的帖子

在应用中注册API

使用django-rest-framework我正在使用 DefaultRouter

我想为几个应用程序提供API,所以我的问题是我可以用django方式执行此操作并将我的路由器注册放在每个应用程序URLconf中,并将它们显示为一个聚合API或理想情况下以命名空间方式显示.

换句话说,如果app1包含modelAmodelB,则app2包含modelC:

  1. 我可以声明出现在mysite/app1/api和的两个路由器mysite/app2/api,或者
  2. 我可以在一个api中mysite/api列出所有三个模型,然后在他们自己的应用程序中注册各个模型urls.py

就像是

router = DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(include('app1.apis')
router.register(include('app2.apis')
Run Code Online (Sandbox Code Playgroud)

或者有一种简单的方法,我的路由器变量可以在每个应用程序的URLconf中可用,以便他们可以调用router.register?我不确定

urlpatterns = patterns('',
url(r'^snippets/', include('snippets.urls', namespace="snippets"))
...
url(r'^api/', include(router.urls)),
Run Code Online (Sandbox Code Playgroud)

实际上导致代码在app1/urls.py该点执行,以便它可以router.register以某种方式调用,以便最终的url调用包括所有应用程序注册以及项目注册.

UPDATE

使用Nicolas Cortot的变体option 2我得到了我的特定资源API,但它没有被列为root APIat 的可用资源myserver\api\

我假设以某种方式DefaultRouter创建它自己的页面定义并向其router.register添加条目.我当前的设置(我认为Nicholas的选项1)也创建了两个独立的路由器,只有一个可以显示为服务器根目录,下面的设置myserver\api\列出users但不是片段.

这是我目前的设置:

project urls.py:

router = DefaultRouter()
router.register(r'users', views.UserViewSet)

urlpatterns = …
Run Code Online (Sandbox Code Playgroud)

django rest json urlconf django-rest-framework

12
推荐指数
3
解决办法
2875
查看次数

在django-crispy-forms中使用表格集渲染表格行

我想将实例列表显示为formsetwith django-crispy-formsbootstrap其中每个实例都显示为一行,所有字段均水平排列。

我可以找到的所有示例似乎都以垂直放置其字段的方式渲染实例。

我以为使用:

helper.form_class = 'form-horizontal'
Run Code Online (Sandbox Code Playgroud)

可能有效,但这似乎没有效果。

django formset tabular django-crispy-forms

5
推荐指数
2
解决办法
1728
查看次数