Тип поля определяет, какие данные можно хранить и как пользователь будет их вводить. Для названия подходит строка, для дня рождения — дата, для времени публикации — момент времени с часовым поясом. Настройки формы делают ввод удобнее; права на чтение и изменение проверяются отдельно на сервере.
Как добавить и настроить поле
В Content откройте сущность и нажмите Add field. Выберите тип или пресет, введите техническое имя. В Basic settings задайте обязательность и Presentation — способ отображения. Дополнительные настройки содержат подпись, описание и поведение списка.
Нажмите Finish. В таблице Fields появятся тип поля и его признаки. Чтобы изменения попали в приложение, выполните Generate.
Какой тип выбрать
| Тип | Для чего подходит | Что учитывать |
|---|---|---|
string, text |
Название, описание, текст статьи | Presentation Markdown добавляет визуальный редактор, но в БД по-прежнему хранится строка. |
int, int64 |
Позиция в списке, счётчик | Значение должно помещаться в диапазон выбранного целого типа. |
float |
Измерения с дробной частью | Не заменяет точную десятичную арифметику для произвольных финансовых расчётов. |
bool |
Активность или видимость | Хранит true или false. |
uuid |
Идентификатор UUID | Сам тип ещё не делает поле первичным ключом. |
date |
Календарная дата | Например, 2026-09-10. |
datetime |
Конкретный момент времени | Например, 2026-09-10T09:30:00Z; учитывается смещение часового пояса. |
enum |
Статус из заданного набора | Например, draft и published. |
json |
Объект настроек | Проверяется корректность JSON. Отдельная форма по его структуре не создаётся. |
relation |
Ссылка на связанную запись | Например, sectionId; поле должно соответствовать отношению. |
image, gallery |
Обложка и набор фотографий | Используют управление файлами и собственные настройки. |
Обязательность, ограничения и значения по умолчанию
required делает поле обязательным, а nullable разрешает хранить null. unique и indexed влияют на схему БД; при её изменении учитываются уже существующие данные. Поддержка min, max, длины и шаблона зависит от типа поля.
Не рассчитывайте, что строковое значение по умолчанию автоматически заполнит любое пропущенное обязательное поле на сервере. Проверяйте поведение выбранного типа и формы.
Для первичного ключа можно настроить UUID или identity, если тип совместим с этим способом генерации. Пресет Identifier выбирает согласованные параметры. Number и UUID value создают обычные поля, а не первичные ключи.
Поиск, фильтры и сортировка
В List behavior включите нужные возможности: Searchable, Filterable, Sortable. После Generate они используются и API, и системой администрирования. В Fields эти признаки показаны под основными бейджами Required и Primary key.
Поиск доступен для string и text. Операторы фильтрации и сортировка зависят от типа. Медиа, JSON и password нельзя включить в общий поиск неподдерживаемым флагом.
Hidden и Readonly
Hidden убирает поле из списка и формы. При редактировании уже загруженное значение такого поля сохраняется в полном объекте запроса. Если обязательное скрытое поле нельзя заполнить поддерживаемой автогенерацией, создание записи блокируется с объяснением причины.
Readonly оставляет значение доступным для чтения и копирования при редактировании. При создании первоначальный ввод разрешён там, где это поддерживает форма.
Оба параметра управляют интерфейсом. Они не запрещают прямой запрос к API — для этого настраивается доступ.
Даты и значения из прежней модели
datetime вводится в локальном времени браузера и отправляется в RFC3339. Если пользователь не менял сохранённую строку, она остаётся прежней. Несуществующее время при переходе на летнее время нельзя сохранить; для неоднозначного времени нужно выбрать смещение.
Варианты enum идут в порядке манифеста. Если старое значение удалено из вариантов, новая запись его выбрать не сможет. В существующей записи оно сохраняется до явного изменения пользователем.
Подсказки с UUID, JSON и датой показывают формат ввода. Они не подставляют данные в запись.
Для смены имени используйте Rename. Для медиа прочитайте отдельную статью об изображениях и галереях.
Как включить identity у существующего ключа
Для первичного ключа int или int64 включите identity, выполните Generate и примените новую миграцию. Сделайте это до работы с обновлённой формой создания: Generate не применяет SQL к PostgreSQL.
Миграция сохраняет прежние идентификаторы и связи. Новая последовательность начинает выдавать значения выше максимального существующего идентификатора; для пустой таблицы или неположительных значений стартует как минимум с 1.
Во время миграции таблица блокируется. Проверяются колонка, тип, первичный ключ, значение по умолчанию и последовательность. Неожиданное состояние или исчерпанный диапазон остановят операцию. Удаление истории и перенумерация записей не являются способом исправления такой ошибки.
Этот сценарий не включает отключение identity, произвольные собственные значения по умолчанию, смену типа, таблицы или первичного ключа. Он также не добавляет автоматическую поддержку старого контракта проекта.
Где посмотреть пошаговые инструкции
Все элементы формы описаны в Content: поля. Для повторяемых операций в терминале используйте CLI: поля: типы и ограничения остаются теми же.