Files
directus/docs/configuration/data-model/fields/relational.md
Rijk van Zanten c723085902 Move docs to monorepo (#18052)
* Move docs to monorepo

* Tweaks
2023-04-04 18:23:58 -04:00

141 lines
8.1 KiB
Markdown

# Relational
> Interfaces are how users interact with fields on the Item Detail page. These are the standard Relational interfaces.
> We recommend that you review [Relationships](/configuration/data-model/relationships) before working with Relational
> interfaces.
## File
![A file type form input where user can pick from three options: "Upload File From Device", "Choose Files from Library", "Import File from URL"](https://cdn.directus.io/docs/v9/configuration/data-model/fields/interfaces-20230308/interface-file.webp)
Interface that allows uses to upload a single file of any mime-type, choose an existing file from the
[File Library](/app/file-library), or import a file from a URL.
- **Folder**: Folder for the uploaded files. Does not affect the location of existing files.
## Image
![A file type form input where user can pick from three options: "Upload File From Device", "Choose Files from Library", "Import File from URL"](https://cdn.directus.io/docs/v9/configuration/data-model/fields/interfaces-20230308/interface-image.webp)
Interface that allows uses to upload a single image file, choose an existing image from the
[File Library](/app/file-library), or import an image from a URL.
- **Folder**: Folder for the uploaded files. Does not affect the location of existing files.
- **Crop to Fit**: Crop the image as needed when displaying the image.
## Files
![A file type form input where user can select and upload multiple files.](https://cdn.directus.io/docs/v9/configuration/data-model/fields/interfaces-20230308/interface-files.webp)
Interface that allows uses to upload multiple files, choose an existing image from the
[File Library](/app/file-library), or import an image from a URL.
This field will create a [Many-To-Many (M2M)](/configuration/data-model/relationships#many-to-many-m2m) junction
collection when added to the [Data Model](/configuration/data-model) for your
[Collection](/configuration/data-model/collections).
- **Folder**: Folder for the uploaded files. Does not affect the location of existing files.
- [**Display Template**](/app/display-templates): Fields or custom text that represent the specific item through various
places in the App Studio.
- **Creating Items**: Allow users to upload new files.
- **Selecting Items**: Allow users to select existing files.
- **Per Page**: The number of Items to show per page.
## Builder (M2A)
![A form interface that allows users to create a relationship from the current item by selecting different items from multiple, distinct Collections.](https://cdn.directus.io/docs/v9/configuration/data-model/fields/interfaces-20230308/interface-m2a.webp)
Interface that allows users to create relationships between the current item and multiple items from multiple, distinct
collections. See [Many-to-Any (M2A) Relationships](/configuration/data-model/relationships#many-to-any-m2a).
Useful in many different contexts including
[creating re-usable page components](/use-cases/headless-cms/create-reusable-page-components-using-m2a).
- **Creating Items**: Allow users to create new Items in the M2A collection.
- **Selecting Items**: Allow users to select existing files in the M2A collection.
- **Per Page**: The number of Items to show per page.
- **Allow Duplicates**: Allow users to add the same Item multiple times.
## Many To Many
![A form interface that allows users to select multiple different items from a single collection. Buttons for "Create New" and "Add Existing".](https://cdn.directus.io/docs/v9/configuration/data-model/fields/interfaces-20230308/interface-m2m.webp)
Interface that allows users to create relationships between the current item and many different items from a single
collection.
This field will create a [Many-To-Many (M2M)](/configuration/data-model/relationships#many-to-many-m2m) junction
collection when added to the [Data Model](/configuration/data-model) for your
[Collection](/configuration/data-model/collections).
- **Layout**: `List`, `Table`
- **Creating Items**: Allow users to create new Items in the M2M collection.
- **Selecting Items**: Allow users to select existing files in the M2M collection.
- **Per Page**: The number of Items to show per page.
- **Junction Fields Location**: `Top`, `Bottom`
- **Allow Duplicates**: Allow users to add the same Item multiple times.
- **Filter**: [Filter Rule](/reference/filter-rules) to filter down the list of Items a user can select.
- **Item link**: Show a link to the item.
## One to Many
![A form interface that allows users to select multiple items from a single collection. Buttons for "Create New" and "Add Existing".](https://cdn.directus.io/docs/v9/configuration/data-model/fields/interfaces-20230308/interface-o2m.webp)
Interface that allows users to create a relationship between the current item and many items from a single collection.
Adding a One To Many field to the data model will create a corresponding Many to One field in the child collection. See
[One-to-Many (O2M) Relationships](/configuration/data-model/relationships#one-to-many-o2m).
- **Layout**: `List`, `Table`
- **Creating Items**: Allow users to create new Items in the M2A collection.
- **Selecting Items**: Allow users to select existing files in the M2A collection.
- **Per Page**: The number of Items to show per page.
- **Junction Fields Location**: `Top`, `Bottom`
- **Allow Duplicates**: Allow users to add the same Item multiple times.
- **Filter**: [Filter Rule](/reference/filter-rules) to filter down the list of Items a user can select.
- **Item link**: Show a link to the item.
## Tree View
![A form interface that shows multiple parent and child items from the same collection. Buttons for "Create New" and "Add Existing".](https://cdn.directus.io/docs/v9/configuration/data-model/fields/interfaces-20230308/interface-treeview.webp)
Special One-to-Many (O2M) interface that allows users to create and manage recursive relationships between items from
the same collection.
The Tree View interface is only available on self-referencing (recursive) relationships. See
[Many-to-Any (O2M) Relationships](/configuration/data-model/relationships#many-to-any-m2a) and
[Build a Content Hierarchy](/cookbook/data-models/build-a-content-hierarchy).
- [**Display Template**](/app/display-templates): Fields or custom text that represent the specific item through various
places in the App Studio.
- **Creating Items**: Allow users to create new Items in the collection.
- **Selecting Items**: Allow users to select existing files in the collection.
- **Filter**: [Filter Rule](/reference/filter-rules) to filter down the list of Items a user can select.
## Many to One
![A form interface that allows a user to select a single item from a collection."](https://cdn.directus.io/docs/v9/configuration/data-model/fields/interfaces-20230308/interface-m2o.webp)
Interface that allows users to create a relationship between the current item and a single item from a single
collection.
See [Many-to-One (M20) Relationships](/configuration/data-model/relationships#many-to-one-m2o)
- [**Display Template**](/app/display-templates): Fields or custom text that represent the specific item through various
places in the App Studio.
- **Creating Items**: `Enable Create Button`
- **Selecting Items**: `Enable Select Button`
- **Filter**: [Filter Rule](/reference/filter-rules) to filter down the list of Items a user can select.
## Translations
![A form interface with two columns and two fields per column - "Title" and "Content". One column contains the English translation for each field. Second column contains the French translation for each field.](https://cdn.directus.io/docs/v9/configuration/data-model/fields/interfaces-20230308/interface-translations.webp)
Special relational Interface designed specifically to handle translations. See
[Translations (O2M)](/configuration/data-model/relationships#translations-o2m).
- **Language Indicator Field**: The field from your `languages` collection that identifies the language to the user.
- **Language Direction Field**: The field from your `languages` collection that identifies the text direction for a
selected language.
- **Default Language**: Default language to use.
- **Use Current User Language**: Default to the current users language.