Skip to content

Commit f5fd7ea

Browse files
committed
更新至ModelAction
1 parent 7149c2f commit f5fd7ea

1 file changed

Lines changed: 40 additions & 26 deletions

File tree

docs/zh/docs/tutorials/basic/ModelAction.md

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@
88
## 自定义工具条动作
99

1010
### 示例-1
11-
11+
1、增加引用
1212
```python
13-
@site.register_admin
14-
class ArticleAdmin(admin.ModelAdmin):
15-
page_schema = PageSchema(label='文章管理', icon='fa fa-file')
16-
model = Article
13+
from fastapi_amis_admin.admin.admin import AdminAction
14+
from fastapi_amis_admin.amis import ActionType
15+
```
16+
2、修改上一节中`ArticleAdmin`类,`page_schema`改为`page_schema = PageSchema(label='文章管理', icon='fa fa-file')`以增加图标,同时类中增加如下代码,来添加工具条
1717

18+
```python
1819
# 添加自定义工具条动作
1920
admin_action_maker = [
2021
lambda admin: AdminAction(
@@ -47,13 +48,19 @@ class ArticleAdmin(admin.ModelAdmin):
4748
!!! note annotate "关于`ActionType`"
4849

4950
ActionType事实上是[amis Action 行为按钮](https://baidu.gitee.io/amis/zh-CN/components/action?page=1)组件的一个python模型映射,它支持多种常见的行为类型.例如:ajax请求/下载请求/跳转链接/发送邮件/弹窗/抽屉/复制文本等等.
50-
51+
5152
fastapi_amis_admin的灵活性强体现之一,是因为它是基于amis的组件式开发,你可以在很多地方自由的替换或添加内置的amis组件.在此之前希望你能阅读[amis文档](https://baidu.gitee.io/amis/zh-CN/components/page),对amis核心组件有一定的了解.
5253

5354
## 自定义单项操作动作
5455

56+
我们将在上一步的基础上新增一个自定义普通处理动作
5557
### 示例-2
56-
58+
新增引入
59+
```python
60+
from typing import List
61+
from fastapi_amis_admin.amis import Dialog
62+
```
63+
增加一个普通动作定义:
5764
```python
5865
# 创建普通ajax动作
5966
class TestAction(admin.ModelAction):
@@ -68,15 +75,31 @@ class TestAction(admin.ModelAction):
6875
...
6976
# 返回动作处理结果
7077
return BaseApiOut(data=dict(item_id=item_id, data=data, items=list(items)))
78+
```
79+
修改`ArticleAdmin`,在`admin_action_maker`的list中追加一行`lambda admin: TestAction(admin, name='test_action', flags=['item', 'bulk'])`变为:
7180

72-
73-
@site.register_admin
74-
class ArticleAdmin(admin.ModelAdmin):
75-
page_schema = PageSchema(label='文章管理', icon='fa fa-file')
76-
model = Article
77-
# 添加自定义单项和批量操作动作
81+
```python
82+
# 添加自定义工具条动作
7883
admin_action_maker = [
79-
lambda admin: TestAction(admin, name='test_action',flags=['item','bulk'])
84+
lambda admin: AdminAction(
85+
admin=admin,
86+
name='test_ajax_action',
87+
action=ActionType.Ajax(
88+
label='工具条ajax动作',
89+
api='https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/form/saveForm'
90+
),
91+
flags=['toolbar']
92+
),
93+
lambda admin: AdminAction(
94+
admin=admin,
95+
name='test_link_action',
96+
action=ActionType.Link(
97+
label='工具条link动作',
98+
link='https://github.com/amisadmin/fastapi_amis_admin'
99+
),
100+
flags=['toolbar']
101+
),
102+
lambda admin: TestAction(admin, name='test_action', flags=['item', 'bulk'])
80103
]
81104
```
82105

@@ -90,6 +113,7 @@ class ArticleAdmin(admin.ModelAdmin):
90113

91114
## 自定义批量操作动作
92115

116+
本部分修改方式同上一步。
93117
### 示例-3
94118

95119
```python
@@ -116,19 +140,9 @@ class TestFormAction(admin.ModelAction):
116140
...
117141
# 返回动作处理结果
118142
return BaseApiOut(data=dict(item_id=item_id, data=data, items=list(items)))
119-
120-
121-
@site.register_admin
122-
class ArticleAdmin(admin.ModelAdmin):
123-
page_schema = PageSchema(label='文章管理', icon='fa fa-file')
124-
model = Article
125-
126-
# 添加自定义单项和批量操作动作
127-
admin_action_maker = [
128-
lambda admin: TestAction(admin, name='test_action',flags=['item','bulk'])
129-
]
130-
131143
```
144+
`admin_action_maker`的list中追加一行`lambda admin: TestFormAction(admin, name='test_form_action', flags=['item', 'bulk'])`
145+
132146

133147
示例-3与示例-2非常相似, 但是它允许用户添加一个自定义表单,这个在很多情况下,非常有用.
134148

0 commit comments

Comments
 (0)