包说明

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第三方库


热门话题
java JavaFX FXML控制器密钥处理程序代码不工作   java为什么在thymeleaf布局中包含的图像需要很长时间才能显示?   更改Java数组的维数   java文本不会显示在文本框(单选按钮)上   内存不足使用Jmap在OutOfMemoryError上转储Java堆文件   通过浏览器偏移进行java时间转换   java意图不可序列化   java iTextPdf:动态更改单元格宽度   具有资源值的java SpringJUnit4 ClassRunner上下文配置   java AsyncTask仍在最近的应用程序上运行   尝试生成Cucumber报告时出现java CucumberException   爪哇,爪哇。朗。反思。带摘要分析器的InvocationTargetException   java如何在log4j2中实现日期模式转换器   带有MongoRepository:DBRef的java Spring   java将字节[]转换为int   来自服务器的java移动应用自动拨号消息   java如何调用泛型类型为T[]的方法作为参数?   java在switch语句中使用ArrayList类