包说明

drf_auto_endpoint的Python项目详细描述


#levit的drf auto endpoint

`drf_auto_endpoint`是一个库,用于直接声明api端点
,就像在django中声明新的'modeladmin'一样。


drf 3.3.
它可能也可以与其他版本的python3.3+和django 1.8+一起使用,但还没有用这些版本进行过测试。


/>
用法

```
urlpatterns=[

url(r'^api/',include(router.urls)),

]
````

register接受
与该端点关联的"url"的可选关键字参数。默认情况下,
终结点的URL将是"app_label/verbose_name_polarial`

````
来自drf_auto_endpoint.router import router
来自my_app.models import mymodel,othermodel

router.register(mymodel)
router.register(othermodel,url='my_custom_url')

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

包含要使用的字段集列表。一个字段集有两个属性,
一个"title"和一个"fields"列表(默认情况下,将使用模型中的每个字段)。
-`filter\u fields`:一个包含字段列表的元组,在该列表中端点将接受筛选point将接受搜索
(仅文本字段)
-`排序字段':包含端点将接受排序的字段列表的元组
-`页面大小':一次要呈现的记录数(自动激活分页)
-`权限类':包含要使用的drf权限类列表
-`url`:viewset的基url
-`viewset`:要使用的viewset类,而不是自动生成的viewset类
-`base\u viewset`:要使用的基viewset类,而不是默认值(`modelviewset`或
`readonlymodelviewset`)

m enpoint的

与django的"modeladmin"类一样,您还可以定义自己的"endpoint"类,并将其注册到路由器,而不是注册模型。

````
myu app/endpoint s.py
从drf自动端点。endpoints import endpoint
from.models import my model

类MyModelEndpoint(终结点):

model=MyModel
只读=true
字段=('id','name','category')
`````
`````
````
URL.py
来自DRF自动终结点。路由器导入路由器
来自My应用程序。终结点导入MyModelEndpoint

路由器.register(endpoint=MyModelEndpoint)

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

这些
类可以用来代替默认的drf元数据类。

反序列化程序提供的字段的额外信息,并提示客户端应用程序如何使用和显示ose字段。

作为示例,请参见这些类为示例模型"product"提供的额外输出。

```
"fields":[
{
"read-only":true,
"name":"id",
"label":"id",
"widget":"number",
"extra":{}

{
"只读":false,
"name":"name",
"label":"name",
"widget":"text",
"extra":{}
},
{
"只读":false,
"name":"category",
"label":"category",
"widget":"foreignkey",
"extra"":{
"相关"模型":"示例/类别"
}
},
{
"只读":false,
"名称":"产品类型"
"标签":"产品类型"
"小部件":"选择"
"额外":{
"选择":[
{
"值":"s",
"label":"sellable"
},
{
"value":"r",
"label":"rentable"
}
}
}
}
},
{
"read-only":true,
"name":"uu str",
"label":"product",
"widget":"text",
"extra":{}
}
],
"list-display":[
"\uu str\uu"
],
"filter\u fields":[],
"search-enabled":false,
"ordering\u fields":[],
"needs":[
{
"singular":"category",
"app":"sample",
"复数":"categories"
}
],
"fieldsets":[
{
"title":空,
"fields":[
{
"name":"name"
},
{
"name":"category"
},
{
"name":"product-type"
}
]
}
]
```

todo

-[]python 2.7兼容性
-[x]python 3.4兼容性
-[]django 1.10兼容性
-[]编写更好的文档
-[x]为"modelserializer"和"modelviewset"提供包装
-[x]添加自定义用于筛选、搜索和排序的选项
-[]启用类似管理的注册机制
-[x]提供"metadata"类,以便在"option"调用上提供元信息(如列表显示)
-[x]向"metadata"类添加"choices"(仅适用于非外键)和"related"模型安装Django模型翻译时的D语言信息

--


>许可证信息可用[此处](license.md)。


贡献者行为准则可用[此处](coc.md)。请注意,本CoC**将被**强制执行。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ArrayList中实体对象上的JAVA泛型   带Redis的爪哇芹菜vs单用Redis   java在设备面向横向时隐藏标题栏/通知栏   java JXTreeTable:如何使用ComponentProvider为一列设置渲染器   java创建异常的成本与记录异常的成本相比   java在方法参数中使用setter传递新对象   java在一个类中的方法与另一个类中的方法交互时遇到问题   java如何迭代2个大小相等的ArrayList   Java getDesktop()。open在Windows中工作,但在Mac中不工作   从tomcat切换到jetty后的java“无法启动嵌入式容器”,Spring引导   java如何使用void方法   java如何在解组时在JAXB的ValidationEventHandler中获取节点值?   如何使用Akka Java API创建不响应的TCP接收器   JavaScriptjQuery在java中将记录上传到数据库时的进度条   如何在重新绘制时在java小程序中显示上一个图像