字段 Fields

关于 Directus 中的 Fields 集合的 REST 和 GraphQL API 文档。字段是项目中的单个内容。 它们映射到数据库中的列。

字段对象

collection string
字段所在的集合的名称。

field string
字段的标识符。 这与表列名称匹配。

type string
字段的 Directus 数据类型。 有关可能的选项,请参阅 Types

Meta

Directus 元数据,主要用于 Admin App。 元是可选的。

id integer
directus_fields 中元数据行的主键。

collection string
此字段所在的集合的名称。

field string
字段的标识符。 匹配数据库中的列名。

special string
适用于该字段的任何特殊转换标志。

interface string
用于该字段的接口。

options object
为此字段配置的接口选项。 该结构基于所使用的接口。

display string
用于此字段的显示。

display_options string
所用显示器的配置选项。

readonly boolean
如果该字段在管理应用程序中被视为只读。

hidden boolean
如果该字段在 Admin App 的编辑页面中隐藏。

sort integer
此字段显示在 Admin App 的编辑页面上的位置。

width string
在 Admin App 的编辑页面上呈现界面的宽度。 halfhalf-lefthalf-righthalf-spacefullfill之一。

translations array
此字段的名称如何在 Admin App 中以不同语言显示。

note string
管理应用程序中显示的简短说明。

架构

“原始”数据库信息。 根据使用的数据库供应商,可能会返回不同的信息。 以下内容适用于所有驱动程序。 注意:架构是可选的。 如果一个字段存在于 directus_fields 中,但不存在于数据库中,则它是一个别名,通常用于 Admin App 中的关系 (O2M) 或演示目的。

name string
字段的标识符。 匹配数据库中的列名。

table string
列所在的表的名称。

data_type string
数据库中使用的数据类型。 注意:此值是特定于数据库供应商的。

default_value any
为列配置的默认值。

max_length integer
varchar 类型列的配置长度。

numeric_precision integer
整数/浮点数/小数类型字段的精度。

numeric_scale integer
整数/浮点/小数类型字段的比例。

is_nullable boolean
该列是否可以为空。 这就是 Directus 中的“必需”状态。

is_primary_key boolean
该字段是否是表的主键。

foreign_key_column string
如果当前列具有外键约束,则 this 指向相关列。

foreign_key_table string
如果当前列有外键约束,则 this 指向相关表。

comment string
存储在数据库中的注释。

json
{
  "collection": "articles",
  "field": "id",
  "type": "integer",
  "meta": {
    "id": 16,
    "collection": "articles",
    "field": "id",
    "special": null,
    "interface": "numeric",
    "options": null,
    "display": null,
    "display_options": null,
    "readonly": true,
    "hidden": true,
    "sort": 1,
    "width": "full",
    "translations": null,
    "note": "The unique identifier of the article"
  },
  "schema": {
    "name": "id",
    "table": "articles",
    "data_type": "integer",
    "default_value": null,
    "max_length": null,
    "numeric_precision": 32,
    "numeric_scale": 0,
    "is_nullable": false,
    "is_primary_key": true,
    "has_auto_increment": true,
    "foreign_key_column": null,
    "foreign_key_table": null,
    "comment": null
  }
}

列出所有字段

列出可用字段。

查询参数

此端点当前不支持任何查询参数。

返回

字段对象的数组。

REST API

GET /fields

GraphQL

POST /graphql/system
graphql
type Query {
 fields: [directus_fields]
}
示例
graphql
query {
 fields {
  collection
  field
 }
}

列出集合中的字段

列出给定集合中的可用字段。

查询参数

此端点当前不支持任何查询参数。

返回

字段对象的数组。

REST API

GET /fields/:collection
示例
GET /fields/articles

GraphQL

POST /graphql/system
graphql
type Query {
 fields_in_collection(collection: String!): directus_fields
}
示例
graphql
query {
 fields_in_collection(collection: "articles") {
  collection
  field
 }
}

检索字段

获取给定集合中的单个字段。

查询参数

此端点当前不支持任何查询参数。

返回

一个字段对象

REST API

GET /fields/:collection/:field
示例
GET /fields/articles/title

GraphQL

POST /graphql/system
graphql
type Query {
 fields_by_name(collection: String!, field: String!): directus_fields
}
示例
graphql
query {
 fields_by_name(collection: "articles", field: "title") {
  collection
  field
 }
}

创建字段

在给定集合中创建一个新字段。

查询参数

此端点当前不支持任何查询参数。

请求正文

field Required
字段键,也用作列名。

type Required
Directus 类型之一。 这反过来控制数据库中的列使用什么数据类型。 将类型设置为“别名”可防止在数据库中创建列。

meta
field object 中的任何可选元值。

schema
field object 中的任何可选架构值。

返回

已创建字段的 字段对象

REST API

POST /fields/:collection
示例
json
// POST /fields/articles

{
  "field": "title",
  "type": "string",
  "meta": {
    "icon": "title"
  },
  "schema": {
    "default_value": "Hello World"
  }
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 create_fields_item(collection: String!, data: create_directus_fields_input!): directus_fields
}
示例
graphql
mutation {
 create_fields_item(
  collection: "articles"
  data: { field: "title", type: "string", meta: { icon: "title" }, schema: { default_value: "Hello World" } }
 ) {
  collection
  field
 }
}

更新字段

更新给定集合中的给定字段。

查询参数

此端点当前不支持任何查询参数。

请求正文

type
字段的新类型。

改变类型
类型可能不兼容,和/或数据可能被截断/损坏。 使用内容更改现有字段的类型时请小心。

meta
字段对象 中的任何可选元值。

schema
字段对象 中的任何可选架构值。

目前不支持更新字段名称。

返回

更新字段的 字段对象

REST API

PATCH /fields/:collection/:field
示例
json
// PATCH /fields/articles/title

{
  "meta": {
    "note": "Put the title here"
  },
  "schema": {
    "default_value": "Hello World!"
  }
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 update_fields_item(collection: String!, field: String!, data: update_directus_fields_input!): directus_fields
}
示例
graphql
mutation {
 update_fields_item(
  collection: "articles"
  field: "title"
  data: { meta: { note: "Put the title here" }, schema: { default_value: "Hello World!" } }
 ) {
  collection
  field
 }
}

删除字段

删除给定集合中的给定字段。

破坏性的
请注意,这将从数据库中删除该列,包括其中的所有数据。 此操作无法撤消。

REST API

DELETE /fields/:collection/:field
示例
DELETE /fields/articles/title

GraphQL

POST /graphql/system
graphql
type Mutation {
 delete_fields_item(collection: String!, field: String!): delete_field
}
示例
graphql
mutation {
 delete_fields_item(collection: "articles", field: "title") {
  collection
  field
 }
}