Django Rest框架的逐字段序列化程序权限。
django-rest-serializer-field-permissions的Python项目详细描述
[![构建状态](https://travis-ci.org/intersis/django-rest-serializer-field-permissions.svg?branch=master)(https://travis ci.org/intersis/django rest serializer字段权限)
[![代码气候](https://codeculate.com/github/intersis/django rest serializer field permissions/badges/gpa.svg)(https://codeculate.com/github/intersis/django rest serializer field permissions)
[![覆盖状态](https://workalls.io/repos/intersis/django-rest-serializer-field-permissions/badge.svg?branch=master&service=github](https://coveralls.io/github/intersis/django-rest-serializer-field-permissions?分支=主)
[![PYPI版本](https://badge.fury.io/py/django rest serializer field permissions.svg)](http://badge.fury.io/py/django rest serializer field permissions)
django rest serializer field permissions
==
如下所示:
```
类PersonSerializer(FieldPermissionSerializerMixin,LookupModelSerializer):
///仅允许经过身份验证的用户检索系列和给定名称
系列名称=序列化器.charfield(Permission类=(IsAuthenticated(),)
Given_names=serializers.charfield(权限类=(isauthenticated(),))
///允许所有用户检索昵称
nick_name=serializers.charfield(权限类=(allow all(),)
````
基于[DRF 3.8文档](https://github.com/encode/django rest framework/tree/2c992f09dada037904efe076029cd7355118d37f)中的示例django rest framework api构建。请确保在开始此教程之前已完成该教程。
将此模块安装到您的环境中:
`````
$pip install django rest serializer field permissions
````
将此模块添加到您的"已安装的应用程序"中,将其安装到django中。
```
已安装的应用程序=(
…
‘rest_framework_serializer_field_permissions’,
…
)
````
现在可以将检索权限添加到各个字段。必须导入下面所示的模块和类,将"fieldpermissionserializermixin"作为**最左边的**父级混合到序列化程序中,然后使用提供的下拉字段类定义字段。
例如,使用允许代码:
```
from django.conf.url导入url,include
from django.contrib.auth.models导入用户
from rest_framework导入路由器、序列化程序、视图集
from rest_framework序列化程序字段权限导入字段--
从rest_framework_serializer_field_permissions.serializer导入fieldpermissionserializerMixin<;--
从rest_framework_serializer_field_permissions.permissions导入是经过身份验证的<;--
序列化程序(fieldPermissionSerializerMixin,serializers.hyperlinkedModelSerializer):35;<;--
类元:
模型=用户
字段=("url"、"用户名"、"电子邮件"、"IS员工")
电子邮件=字段。emailfield(权限类=(isAuthenticated(),)#<;--
视图集定义视图行为。
类userviewset(viewsets.modelviewset):
queryset=user.objects.all()
序列化器类=user serializer
路由器提供了一种简单的自动确定url配置的方法。
router=routers.defaultrouter()
router.register(r'users,userviewset)
使用自动url路由连接我们的api。
此外,我们还包括可浏览api的登录url。
urlpatterns=[
url(r'^',include(router.url)),
url(r'^api auth/',include('rest_framework.urls',namespace='rest_framework'))
]
````
现在,只有经过身份验证的用户才能检索用户的电子邮件。如果您还没有创建超级用户帐户,则可以通过创建超级用户帐户来确认这一点,并以经过身份验证的用户和未经身份验证的访问者身份访问[http://localhost:8000/users/](http://localhost:8000/users)。
ields.charfield(权限类=(isauthenticated(),)
```
>在您的python发行版或virtualenv中安装模块:
$pip install django rest serializer字段权限
>将应用程序添加到您的"已安装的应用程序"中:
````
>已安装的应用程序=(
…
```
<
<
<
乙r/>在序列化程序中添加权限
,将"fieldpermissionserializermixin"作为最左边的父级混合到序列化程序类中。字段
由"rest_framework_serializer_field_permissions"提供。字段"accept"permission_classes"以典型的
drf方式操作:
````
rest_framework import serializer
from rest_framework_serializer_field_permissions import fields
from rest_framework_field_permissions.serializers从rest\u framework\u serializer\u field\u permissions导入fieldpermissionserializer
/>email=fields.emailfield(权限类=(isauthenticated(),)
````
----
"fieldpermissionserializermixin"提供自己的"fields"属性,drf序列化程序调用该属性以获取自己字段的列表。修改后的"fields"属性检查带有权限的字段,强制它们根据请求检查自己的
权限,并从返回的字段中清除任何未通过权限检查的字段。
compatibility
----
*django rest framework 3.8
*django 1.11,2.1
*python 2.7,3.7
请参阅tox.ini对于测试的特定次要版本。
[github](https://github.com/intersis/django-rest-serializer-field-permissions)是此项目的规范位置。
在[Issue Tracker]中打开问题(https://github.com/intersis/django rest serializer field permissions/issues/)。
2.按任意顺序:
*提交一个带有**失败**测试的请求,该测试演示问题/功能。
*获取确认/并发。
3。在(2)中提交通过测试的拉取请求。包括文档,如果合适的话。
[![代码气候](https://codeculate.com/github/intersis/django rest serializer field permissions/badges/gpa.svg)(https://codeculate.com/github/intersis/django rest serializer field permissions)
[![覆盖状态](https://workalls.io/repos/intersis/django-rest-serializer-field-permissions/badge.svg?branch=master&service=github](https://coveralls.io/github/intersis/django-rest-serializer-field-permissions?分支=主)
[![PYPI版本](https://badge.fury.io/py/django rest serializer field permissions.svg)](http://badge.fury.io/py/django rest serializer field permissions)
django rest serializer field permissions
==
如下所示:
```
类PersonSerializer(FieldPermissionSerializerMixin,LookupModelSerializer):
///仅允许经过身份验证的用户检索系列和给定名称
系列名称=序列化器.charfield(Permission类=(IsAuthenticated(),)
Given_names=serializers.charfield(权限类=(isauthenticated(),))
///允许所有用户检索昵称
nick_name=serializers.charfield(权限类=(allow all(),)
````
基于[DRF 3.8文档](https://github.com/encode/django rest framework/tree/2c992f09dada037904efe076029cd7355118d37f)中的示例django rest framework api构建。请确保在开始此教程之前已完成该教程。
将此模块安装到您的环境中:
`````
$pip install django rest serializer field permissions
````
将此模块添加到您的"已安装的应用程序"中,将其安装到django中。
```
已安装的应用程序=(
…
‘rest_framework_serializer_field_permissions’,
…
)
````
现在可以将检索权限添加到各个字段。必须导入下面所示的模块和类,将"fieldpermissionserializermixin"作为**最左边的**父级混合到序列化程序中,然后使用提供的下拉字段类定义字段。
例如,使用允许代码:
```
from django.conf.url导入url,include
from django.contrib.auth.models导入用户
from rest_framework导入路由器、序列化程序、视图集
from rest_framework序列化程序字段权限导入字段--
从rest_framework_serializer_field_permissions.serializer导入fieldpermissionserializerMixin<;--
从rest_framework_serializer_field_permissions.permissions导入是经过身份验证的<;--
序列化程序(fieldPermissionSerializerMixin,serializers.hyperlinkedModelSerializer):35;<;--
类元:
模型=用户
字段=("url"、"用户名"、"电子邮件"、"IS员工")
电子邮件=字段。emailfield(权限类=(isAuthenticated(),)#<;--
视图集定义视图行为。
类userviewset(viewsets.modelviewset):
queryset=user.objects.all()
序列化器类=user serializer
路由器提供了一种简单的自动确定url配置的方法。
router=routers.defaultrouter()
router.register(r'users,userviewset)
使用自动url路由连接我们的api。
此外,我们还包括可浏览api的登录url。
urlpatterns=[
url(r'^',include(router.url)),
url(r'^api auth/',include('rest_framework.urls',namespace='rest_framework'))
]
````
现在,只有经过身份验证的用户才能检索用户的电子邮件。如果您还没有创建超级用户帐户,则可以通过创建超级用户帐户来确认这一点,并以经过身份验证的用户和未经身份验证的访问者身份访问[http://localhost:8000/users/](http://localhost:8000/users)。
ields.charfield(权限类=(isauthenticated(),)
```
>在您的python发行版或virtualenv中安装模块:
$pip install django rest serializer字段权限
>将应用程序添加到您的"已安装的应用程序"中:
````
>已安装的应用程序=(
…
```
<
<
<
乙r/>在序列化程序中添加权限
,将"fieldpermissionserializermixin"作为最左边的父级混合到序列化程序类中。字段
由"rest_framework_serializer_field_permissions"提供。字段"accept"permission_classes"以典型的
drf方式操作:
````
rest_framework import serializer
from rest_framework_serializer_field_permissions import fields
from rest_framework_field_permissions.serializers从rest\u framework\u serializer\u field\u permissions导入fieldpermissionserializer
/>email=fields.emailfield(权限类=(isauthenticated(),)
````
----
"fieldpermissionserializermixin"提供自己的"fields"属性,drf序列化程序调用该属性以获取自己字段的列表。修改后的"fields"属性检查带有权限的字段,强制它们根据请求检查自己的
权限,并从返回的字段中清除任何未通过权限检查的字段。
compatibility
----
*django rest framework 3.8
*django 1.11,2.1
*python 2.7,3.7
请参阅tox.ini对于测试的特定次要版本。
[github](https://github.com/intersis/django-rest-serializer-field-permissions)是此项目的规范位置。
在[Issue Tracker]中打开问题(https://github.com/intersis/django rest serializer field permissions/issues/)。
2.按任意顺序:
*提交一个带有**失败**测试的请求,该测试演示问题/功能。
*获取确认/并发。
3。在(2)中提交通过测试的拉取请求。包括文档,如果合适的话。