agentic_huge_data_base / wiki
页面 Mayan EDMS · 7.2 数据模型参考·DeepWiki 中文全文译文

7.2 · 数据模型参考(Data Model Reference)

企业电子文档治理 · 聚焦本章的模块关系、源码依据与实现要点。

项目Mayan EDMS 章节7.2 状态全文译文 模块文档对象与元数据、测试、发布与运维、检索、召回与索引、界面与交互
源码线索
  • mayan/apps/cabinets/tests/test_wizard_steps.py
  • mayan/apps/cabinets/wizard_steps.py
  • mayan/apps/converter/templatetags/converter_tags.py
  • mayan/apps/documents/apps.py
  • mayan/apps/documents/icons.py
  • mayan/apps/documents/links/document_version_links.py
  • mayan/apps/documents/managers.py
  • mayan/apps/documents/migrations/0078_alter_documenttype_label.py
  • mayan/apps/documents/models/document_file_models.py
  • mayan/apps/documents/models/document_file_page_models.py
模块标签
  • 文档对象与元数据
  • 测试、发布与运维
  • 检索、召回与索引
  • 界面与交互
  • 入库与解析

章节正文

数据模型参考

数据模型参考

相关源文件

本章引用的主要源码文件:

  • mayan/apps/cabinets/tests/test_wizard_steps.py
  • mayan/apps/cabinets/wizard_steps.py
  • mayan/apps/converter/templatetags/converter_tags.py
  • mayan/apps/documents/apps.py
  • mayan/apps/documents/icons.py
  • mayan/apps/documents/links/document_version_links.py
  • mayan/apps/documents/managers.py
  • mayan/apps/documents/migrations/0078_alter_documenttype_label.py
  • mayan/apps/documents/models/document_file_models.py
  • mayan/apps/documents/models/document_file_page_models.py
  • mayan/apps/documents/models/document_models.py
  • mayan/apps/documents/models/document_type_models.py
  • mayan/apps/documents/models/document_version_models.py
  • mayan/apps/documents/models/document_version_page_models.py
  • mayan/apps/documents/permissions.py
  • mayan/apps/documents/tasks.py
  • mayan/apps/documents/templates/documents/errors/document_file_page_transformation_error.html
  • mayan/apps/documents/templates/documents/errors/document_version_page_transformation_error.html
  • mayan/apps/documents/templates/documents/forms/widgets/page_carousel.html
  • mayan/apps/documents/templates/documents/forms/widgets/page_image.html
  • mayan/apps/documents/templates/documents/widgets/thumbnail.html
  • mayan/apps/documents/tests/test_document_file_page_views.py
  • mayan/apps/documents/tests/test_document_type_api.py
  • mayan/apps/documents/urls.py
  • mayan/apps/documents/views/document_file_page_views.py
  • mayan/apps/documents/views/document_type_views.py
  • mayan/apps/documents/views/document_version_page_views.py
  • mayan/apps/documents/views/document_version_views.py
  • mayan/apps/documents/views/document_views.py
  • mayan/apps/metadata/api.py
  • mayan/apps/metadata/api_views.py
  • mayan/apps/metadata/forms.py
  • mayan/apps/metadata/models.py
  • mayan/apps/metadata/serializers.py
  • mayan/apps/metadata/tests/literals.py
  • mayan/apps/metadata/tests/mixins.py
  • mayan/apps/metadata/tests/test_forms.py
  • mayan/apps/metadata/tests/test_models.py
  • mayan/apps/metadata/tests/test_wizard_steps.py
  • mayan/apps/metadata/urls.py
  • mayan/apps/metadata/wizard_steps.py
  • mayan/apps/quotas/tests/test_hooks.py
  • mayan/apps/sources/wizards.py
  • mayan/apps/tags/tests/literals.py
  • mayan/apps/tags/tests/test_document_tag_api.py
  • mayan/apps/tags/tests/test_indexing.py
  • mayan/apps/tags/tests/test_tag_api.py
  • mayan/apps/tags/tests/test_tag_document_api.py
  • mayan/apps/tags/tests/test_wizard_steps.py
  • mayan/apps/tags/wizard_steps.py

本文档提供了 Mayan EDMS 中所有 Django 模型的完整参考,包括其字段、关系和关键方法。它涵盖了构成文档管理系统基础的核心文档管理模型、元数据系统模型以及辅助模型。

有关 API 端点和序列化器的信息,请参阅 API 参考。有关配置设置,请参阅 配置参考

核心文档模型

文档管理系统围绕几个核心模型构建,这些模型代表文档、文档类型、文件、版本和页面。这些模型形成一个层级结构,其中文档包含文件和版本,而文件和版本又包含页面。

文档模型(文档模型)

Document 模型是系统中代表文档的中心实体。它作为根对象,将所有与文档相关的信息联系在一起。

Mayan EDMS · 文档模型(文档模型) · 图 1
Mayan EDMS · 文档模型(文档模型) · 图 1

关键字段和属性:

  • uuid:文档的通用唯一标识符
  • label:文档的人类可读名称
  • document_type:指向 DocumentType 的外键关系
  • is_stub:指示文档是否已上传文件
  • in_trash:表示回收站状态的布尔标志

来源:mayan/apps/documents/models/document_models.py:41-325

文档类型模型(文档类型模型)

DocumentType 模型定义了文档的类别及其行为,包括保留策略和文件名生成。

关键字段:

  • label:文档类型的唯一标识符
  • trash_time_period / trash_time_unit:自动移入回收站的配置
  • delete_time_period / delete_time_unit:自动删除的配置
  • filename_generator_backend:负责生成文件名的类

来源:mayan/apps/documents/models/document_type_models.py:34-186

文档文件和版本模型

文档文件模型(DocumentFile 模型)

DocumentFile 模型表示与文档关联的实际文件上传。一个文档可以有多个文件,代表不同的版本或格式。

Mayan EDMS · 文档文件模型(DocumentFile 模型) · 图 2
Mayan EDMS · 文档文件模型(DocumentFile 模型) · 图 2

关键方法:

  • checksum_update():计算并更新文件校验和
  • open():返回带有钩子支持的文件描述符
  • exists():检查文件是否存在于存储中

来源:mayan/apps/documents/models/document_file_models.py:51-498

文档版本模型(DocumentVersion 模型)

DocumentVersion 模型表示文档的逻辑版本,允许对文档页面进行多种视图或排列。

关键字段:

  • active:布尔值,指示这是否为活动版本
  • comment:版本的描述

关键方法:

  • active_set():将此版本设置为活动版本
  • pages_remap():将页面重新映射到不同的内容对象
  • export():将版本导出为 PDF 格式

来源:mayan/apps/documents/models/document_version_models.py:45-389

页面模型

文档文件页面(DocumentFilePage)和文档版本页面(DocumentVersionPage)

这些模型分别表示文件和版本中的单个页面。

Mayan EDMS · 文档文件页面(DocumentFilePage)和文档版本页面(DocumentVersionPage) · 图 3
Mayan EDMS · 文档文件页面(DocumentFilePage)和文档版本页面(DocumentVersionPage) · 图 3

DocumentVersionPage 使用 Django 的 GenericForeignKey 指向任何内容对象,通常指向 DocumentFilePage 实例。

来源:mayan/apps/documents/models/document_file_page_models.py:28-344mayan/apps/documents/models/document_version_page_models.py:39-545

元数据模型

元数据系统允许通过灵活的类型-值系统将结构化数据附加到文档上。

核心元数据模型
Mayan EDMS · 核心元数据模型 · 图 4
Mayan EDMS · 核心元数据模型 · 图 4
元数据类型模型(MetadataType 模型)

定义可以附加到文档的元数据类型:

  • name:元数据类型的内部标识符
  • label:人类可读的名称
  • default:默认值的模板
  • lookup:生成选择列表的模板
  • validation / validation_arguments:校验类和参数
  • parser / parser_arguments:解析器类和参数

关键方法:

  • get_default_value():渲染默认值模板
  • get_lookup_values():从模板生成选择列表
  • validate_value():校验元数据值

来源:mayan/apps/metadata/models.py:27-186

文档元数据模型(DocumentMetadata 模型)

将元数据值链接到特定文档:

  • document:指向 Document 的外键
  • metadata_type:指向 MetadataType 的外键
  • value:实际的元数据值

该模型通过 clean_fields() 强制进行校验,并确保元数据类型对文档类型有效。

来源:mayan/apps/metadata/models.py:188-277

模型管理器和查询集

Mayan EDMS 使用自定义管理器为不同用例提供过滤后的查询集:

文档管理器
Mayan EDMS · 文档管理器 · 图 5
Mayan EDMS · 文档管理器 · 图 5
专用管理器
  • ValidDocumentFileManager:过滤来自非回收站文档的文件
  • ValidDocumentVersionManager:过滤来自非回收站文档的版本
  • ValidFavoriteDocumentManager:管理用户收藏的文档
  • ValidRecentlyAccessedDocumentManager:跟踪最近访问的文档

来源:mayan/apps/documents/managers.py:20-322

辅助模型

用户活动模型
Mayan EDMS · 用户活动模型 · 图 6
Mayan EDMS · 用户活动模型 · 图 6

这些模型跟踪用户与文档的交互,用于收藏列表和最近访问文档等功能。

来源:mayan/apps/documents/apps.py:236-251

模型关系总览

Mayan EDMS · 模型关系总览 · 图 7
Mayan EDMS · 模型关系总览 · 图 7

此图展示了文档管理系统中所有主要模型之间的完整关系结构。

来源:mayan/apps/documents/apps.py:221-551mayan/apps/metadata/models.py:27-329