跳转到主要内容

为模型自动生成API。公开核心Django功能。与现有表单进行验证。

项目描述

https://travis-ci.org/praekelt/djangorestframework-extras.svg?branch=develop https://coveralls.io/repos/github/praekelt/djangorestframework-extras/badge.svg

DRFE为任何Django模型生成RESTful API。它建立在Django Rest Framework之上。

先决条件

  1. pip install djangorestframework

  2. rest_framework 添加到您的 settings.py 中的 INSTALLED_APPS 设置。

安装

  1. 安装或添加 djangorestframework-extras 到您的Python路径。

  2. rest_framework_extras 添加到您的 settings.py 中的 INSTALLED_APPS 设置。

功能列表

  • 为所有已知应用程序生成默认序列化器和视图集以创建RESTful API。

  • 将应用程序中已知的所有视图集与Django Rest Framework路由器进行注册。

  • 为默认用户、工作人员用户和超级用户自定义序列化器和权限。

  • 自定义FormMixin,将验证委托给普通Django表单。

  • 自定义超链接字段和序列化器,HyperlinkedRelatedFieldHyperlinkedModelSerializer

使用

用户权限和自定义UsersViewSet

djangorestframework-extras 提供了一个自定义视图集 UsersViewSet,其中包含默认用户、工作人员用户和超级用户的序列化器和权限。

通过默认路由器注册UsersViewSet

from rest_framework_extras.users.viewsets import UsersViewSet

router = routers.DefaultRouter()

router.register(r'users', UsersViewSet, 'user')

视图集的发现和注册

通过在urls.py中添加以下内容来启用默认序列化器和视图集的发现和注册:

from rest_framework import routers
import rest_framework_extras
router = routers.DefaultRouter()

rest_framework_extras.discover(router)
rest_framework_extras.register(router)

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

逐行分析代码

  1. 第1行和第3行:路由器和DefaultRouter类自动连接视图和URL,并创建API根。

  2. 第5行:新的discover函数生成默认的序列化器和视图集。此函数应在正常注册之前运行。

  3. 第6行:新的register函数注册所有视图集(包括UsersViewSet),覆盖任何已以相同名称注册的项目。

  4. 第9行:通过包含router.urls来定义URL。

可用设置

REST_FRAMEWORK_EXTRAS

blacklist:要加入黑名单的模型字典。默认情况下,以下模型被加入黑名单

"REST_FRAMEWORK_EXTRAS": {
   "blacklist": {
        "sessions-session": {},
        "admin-logentry": {}
   },
   "authentication-classes": (SessionAuthentication, BasicAuthentication),
   "permission-classes": (DjangoModelPermissions,)
}

提示

通过更改mapping参数来更改已注册的用户模型名称,例如

rest_framework_extras.register(router, mapping=(("user", UsersViewSet),))

使用onlyoverride参数限制将通过Django Rest Framework显示的模型。定义一个以逗号分隔的列表,例如

rest_framework_extras.discover(router, only=["auth-user", "auth-permission"])

todo:记录override

单元测试

使用以下命令运行测试

python manage.py test rest_framework_extras.tests --settings=rest_framework_extras.tests.settings.111

许可协议

请参阅此存储库中LICENSE文件的许可要求。

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

djangorestframework-extras-0.3.0.tar.gz (12.0 kB 查看散列)

上传时间:

构建分布

djangorestframework_extras-0.3.0-py2.7.egg (39.6 kB 查看散列)

上传时间:

由以下机构支持