# 创建一个DocType
DocType在其他框架中类似于模型(Model)。除了定义属性外,它还定义了模型的行为。
# 启用开发者模式
在我们能够创建DocTypes之前,我们需要在我们的工作台(bench)上启用开发者模式。这将在我们创建DocTypes时启用样板文件的创建,并且我们可以使用我们的应用程序将它们跟踪到版本控制中。
转到终端,并在frappe-bench目录下,如果bench服务器已经在运行,则退出,然后运行以下命令:
$ bench set-config -g developer_mode true
$ bench start
2
# 创建一个DocType
在Desk中,使用Awesomebar导航到DocType列表。这个列表将包括框架捆绑的DocTypes、安装的Frappe应用程序的一部分的DocTypes以及你可以为每个站点创建的特定自定义DocTypes。
我们首先创建的DocType是Article。要创建它,请点击New。
输入名称为Article
在模块中选择Library Management
在字段表中添加以下字段:
文章名称(数据,必填)
图片(附加图片)
作者(数据)
描述(文本编辑器)
ISBN(数据)
状态(选择)- 输入两个选项:已发行和可用(输入已发行,按回车,然后输入可用)
出版商(数据)
参考以下GIF以查看如何操作:

添加字段后,点击保存。
你将在表单右上角看到一个转到文章列表按钮。点击它,你将看到一个空白列表,因为没有记录。
让我们创建一些记录。但在此之前,我们需要清除Desk缓存。点击导航栏右侧的设置下拉菜单,然后点击重新加载。
现在,你应该看到新建按钮。点击它,你将看到Article doctype的表单视图。填写表单并点击保存。你已经创建了你的第一个Article文档。返回到列表视图,你应该看到一个记录。

# 创建Article DocType时发生了什么?
1. 数据库表
创建了一个名为tabArticle的数据库表,其中包含我们在字段表中指定的字段。你可以通过MariaDB控制台检查这一点:
$ bench --site library.localhost mariadb
2. Desk视图
还为我们的DocType创建了许多视图。文章列表是显示数据库表中记录的列表视图。表单视图是在你想要创建新文档或查看现有文档时显示的视图。
3. 表单布局
如果你注意到,表单中字段的布局是按照你在字段表中对它们的排序。例如,文章名称是第一个字段,其次是图片,然后是作者。在本教程的后续部分,我们将学习如何进一步自定义此布局。
4. 样板代码
注意
确保在DocType配置中取消选中“自定义?”复选框。否则,以下讨论的文件不会被生成。这里给出了解释
如果你查看你的应用程序中的更改,你应该会发现创建了一些文件。转到终端,并从frappe-bench目录运行以下命令。
$ cd apps/library_management
$ git status -u
2
article.json - 定义DocType属性的JSON文件
article.js - 表单视图的客户端控制器
article.py - Article的Python控制器
test_article.py - 编写测试的Python单元测试样板
正如你看到的,DocType描述了模型的很多内容。它不仅定义了表和列名,还定义了它将在Desk的各种视图中如何呈现。
到目前为止,你已经很好地跟随了本教程。让我们继续!
接下来: DocType特性.md