Поиск

Релиз

Содержание

Нужна помощь?

Не нашли ответ на свой вопрос? Свяжитесь с нашей службой поддержки.

Обратиться в поддержку

Модели системы: описание полей

Обновлено: 07 Декабрь 2025 Версия: 2.2

Для правильной работы с API и шаблонами уведомлений важно знать точные названия полей моделей системы. Ниже приведено подробное описание каждой модели, доступной через API.

Сотрудник (Employee)

Модель: personal.models.Employee

Доступные поля через API:

Поле Тип Описание Пример
id Integer Уникальный идентификатор 1
display_name String Отображаемое имя "Иванов Иван Иванович"
first_name String Имя "Иван"
last_name String Фамилия "Иванов"
middle_name String Отчество "Иванович"
title String Должность "Менеджер проектов"
email String Email адрес "ivanov@example.com"
mobile_number String Мобильный телефон "+7 (999) 123-45-67"
telephone_number String Рабочий телефон "+7 (495) 123-45-67"
manager Integer (FK) ID руководителя 5
manager_name String Имя руководителя (read-only) "Петров Петр Петрович"
org Integer (FK) ID подразделения 10
org_name String Название подразделения (read-only) "Отдел разработки"
status String Статус сотрудника "working", "vacation", "dismissed"
hire_date Date Дата приема на работу "2020-01-15"
avatar String (URL) URL аватара "/media/avatars/user.jpg"
created_at DateTime Дата создания "2020-01-15T10:00:00Z"

Пример использования в шаблоне уведомления:

{
  "subject": "Задача назначена: {title}",
  "body": "Здравствуйте, {executor_str}!\n\nВам назначена задача: {title}\n\nИсполнитель: {executor_str}\nРуководитель: {manager_name}"
}

Примечание: В шаблонах уведомлений доступны как прямые поля объекта (например, {executor.display_name}), так и вычисляемые значения через extra_context (например, {executor_str}).

Пользователь (User)

Модель: users.models.CustomUser

Доступные поля через API:

Поле Тип Описание Пример
id Integer Уникальный идентификатор 1
email String Email адрес (уникальный) "user@example.com"
display_name String Отображаемое имя "Иванов Иван"
first_name String Имя "Иван"
last_name String Фамилия "Иванов"
middle_name String Отчество "Иванович"
title String Должность/роль "Разработчик"
mobile_number String Мобильный телефон "+7 (999) 123-45-67"
avatar String (URL) URL аватара "/media/avatars/user.jpg"
is_staff Boolean Является ли сотрудником true
is_active Boolean Активен ли пользователь true
date_joined DateTime Дата регистрации "2020-01-15T10:00:00Z"
employee_id Integer ID связанного сотрудника (read-only) 5

Пример использования в шаблоне уведомления:

{
  "subject": "Добро пожаловать, {user_name}!",
  "body": "Здравствуйте, {user_name}!\n\nВаш email: {user.email}\nДата регистрации: {user.date_joined}"
}

Договор (Contract)

Модель: finance.contracts.Contract

Доступные поля через API:

Поле Тип Описание Пример
id Integer Уникальный идентификатор 1
display_name String Отображаемое название "Договор №123 от 01.01.2024"
number String Номер договора "123/2024"
date Date Дата договора "2024-01-01"
date_expiry Date Дата окончания "2024-12-31"
client Integer (FK) ID клиента 10
client_name String Название клиента (read-only) "ООО Рога и Копыта"
contractor Integer (FK) ID подрядчика 20
contractor_name String Название подрядчика (read-only) "ООО Подрядчик"
recipient Integer (FK) ID получателя 30
recipient_name String Название получателя (read-only) "ООО Получатель"
status String Статус договора "planing", "actual", "noactual"
currency String Валюта "RUB", "USD", "EUR"
currency_price Decimal Сумма договора "1000000.00"
pay_method String Способ оплаты "cash", "cashless"
pay_date Date Дата оплаты "2024-06-01"
prolong Boolean Автопродление true
note String Примечание "Дополнительная информация"
created_at DateTime Дата создания "2024-01-01T10:00:00Z"
modified_at DateTime Дата изменения "2024-01-15T12:00:00Z"

Пример использования в шаблоне уведомления:

{
  "subject": "Договор {number} истекает",
  "body": "Договор {number} от {date} с клиентом {client_name} истекает {date_expiry}.\n\nСумма: {currency_price} {currency}"
}

Заявка (Request)

Модель: servicedesk.requests.Request

Доступные поля через API:

Поле Тип Описание Пример
id Integer Уникальный идентификатор 1
title String Название заявки "Проблема с принтером"
theme String Тема заявки "Техническая поддержка"
message String Текст заявки "Принтер не печатает"
client Integer (FK) ID клиента 10
source Integer (FK) ID источника 1
type Integer (FK) ID типа заявки 5
type_name String Название типа (read-only) "Инцидент"
category Integer (FK) ID категории 3
priority Integer (FK) ID приоритета 2
priority_name String Название приоритета (read-only) "Высокий"
impact Integer (FK) ID влияния 1
status Integer (FK) ID статуса 1
status_name String Название статуса (read-only) "В работе"
executoruser Integer (FK) ID исполнителя (пользователь) 15
executor_name String Имя исполнителя (read-only) "Петров Петр"
executorgroup Integer (FK) ID группы исполнителей 20
creator Integer (FK) ID создателя 12
creator_name String Имя создателя (read-only) "Иванов Иван"
startdate DateTime Дата начала "2024-01-15T10:00:00Z"
duedate DateTime Срок выполнения "2024-01-20T18:00:00Z"
deadline DateTime Дедлайн "2024-01-20T18:00:00Z"
responsetime DateTime Время отклика "2024-01-15T11:00:00Z"
respondedtime DateTime Время ответа "2024-01-15T12:00:00Z"
resolvedtime DateTime Время решения "2024-01-18T15:00:00Z"
createdtime DateTime Дата создания "2024-01-15T10:00:00Z"
lastedittime DateTime Дата последнего изменения "2024-01-18T15:00:00Z"
is_draft Boolean Черновик false

Пример использования в шаблоне уведомления:

{
  "subject": "Новая заявка: {title}",
  "body": "Создана новая заявка:\n\nНазвание: {title}\nТип: {type_name}\nПриоритет: {priority_name}\nСтатус: {status_name}\nИсполнитель: {executor_name}\nСрок: {duedate}"
}

Проект (Project)

Модель: projects.models.Project

Доступные поля через API:

Поле Тип Описание Пример
id UUID Уникальный идентификатор (UUID) "550e8400-e29b-41d4-a716-446655440000"
name String Название проекта "Разработка нового сайта"
code String Код проекта "PROJ-001"
description String Описание проекта "Полная разработка корпоративного сайта"
manager Integer (FK) ID менеджера проекта (Employee) 5
manager_name String Имя менеджера (read-only) "Иванов Иван Иванович"
status Integer Статус проекта 1 (Initiation), 2 (Planing), 3 (Execution), 4 (Completion), 5 (Control), 6 (Completed), 7 (Canceled)
status_display String Название статуса (read-only) "В работе"
contractor Integer (FK) ID подрядчика 20
owner String Функциональный заказчик "ООО Заказчик"
budget Decimal Бюджет проекта "5000000.00"
type Integer (FK) ID типа проекта 3
class_importance String Класс важности "A" (высокий), "B" (средний), "C" (низкий)
class_deadline String Класс дедлайна "A", "B", "C"
class_budget String Класс бюджета "A", "B", "C"
goals_justification String Цели и обоснование (HTML) "<p>Цель проекта...</p>"
expected_results String Ожидаемые результаты (HTML) "<p>Результаты...</p>"
scope_description String Описание области (HTML) "<p>Область...</p>"
created_at DateTime Дата создания "2024-01-01T10:00:00Z"
modified_at DateTime Дата изменения "2024-01-15T12:00:00Z"

Пример использования в шаблоне уведомления:

{
  "subject": "Проект {name} - обновление статуса",
  "body": "Проект {name} (код: {code}) изменил статус на {status_display}.\n\nМенеджер: {manager_name}\nБюджет: {budget}"
}

Задача (Task)

Модель: tasks.models.Task

Доступные поля через API:

Поле Тип Описание Пример
id Integer Уникальный идентификатор 1
title String Название задачи "Разработать API"
description String Описание задачи "Создать REST API для модуля"
author Integer (FK) ID автора задачи (Employee) 5
author_name String Имя автора (read-only) "Иванов Иван Иванович"
executor Integer (FK) ID исполнителя (Employee) 10
executor_name String Имя исполнителя (read-only) "Петров Петр Петрович"
control Integer (FK) ID контролера (Employee) 15
project Integer (FK) ID проекта 100
project_name String Название проекта (read-only) "Разработка нового сайта"
request Integer (FK) ID связанной заявки 50
duedate DateTime Срок выполнения "2024-01-20T18:00:00Z"
completedate Date Дата выполнения "2024-01-18"
completed Boolean Выполнена ли задача false
canceled Boolean Отменена ли задача false
priority Boolean Приоритетная задача true
start_date DateTime Дата начала (для диаграммы Гантта) "2024-01-15T09:00:00Z"
duration_days Integer Длительность в днях 5
progress Integer Прогресс выполнения (0-100) 50
is_milestone Boolean Является ли контрольной точкой false
is_project_lifecycle Boolean Является ли задачей жизненного цикла проекта false
result_type String Тип результата контрольной точки "event", "document"
parent Integer (FK) ID родительской задачи 2
created_at DateTime Дата создания "2024-01-15T10:00:00Z"
modified_at DateTime Дата изменения "2024-01-18T15:00:00Z"

Пример использования в шаблоне уведомления:

{
  "subject": "Просроченная задача: {title}",
  "body": "Здравствуйте, {executor_str}!\n\nУ вас есть просроченная задача:\n\nНазвание: {title}\nОписание: {description}\nСрок выполнения: {duedate}\nПроект: {project_str}\n\nПожалуйста, выполните задачу или обновите срок выполнения.\n\nСсылка: {url}"
}

Важно: В шаблонах уведомлений для задач доступны следующие вычисляемые поля через extra_context:

  • {executor_str} - строковое представление исполнителя (обычно executor.display_name)
  • {project_str} - строковое представление проекта (обычно project.name)
  • {url} - URL задачи (через task.get_absolute_url())

Уведомление (Notification)

Модель: system.notifications.Notification

Доступные поля через API:

Поле Тип Описание Пример
id Integer Уникальный идентификатор 1
title String Заголовок уведомления "Новая задача"
message String Текст уведомления "Вам назначена новая задача"
user Integer (FK) ID пользователя 10
content_type Integer (FK) ID типа контента 15
content_type_name String Название типа контента (read-only) "task"
object_id String ID связанного объекта "123"
cached_url String (URL) Кэшированный URL объекта "/tasks/123/"
is_read Boolean Прочитано ли уведомление false
created_at DateTime Дата создания "2024-01-15T10:00:00Z"

Пример использования:

Уведомления обычно не используются напрямую в шаблонах модулей, но доступны через API для отображения в интерфейсе модуля.

Работа с полями в шаблонах уведомлений

При создании шаблонов уведомлений в module.json вы можете использовать следующие способы доступа к полям:

  1. Прямой доступ к полям объекта:

json { "subject": "Задача: {title}", "body": "Исполнитель: {executor.display_name}\nПроект: {project.name}" }

  1. Использование вычисляемых значений через extra_context: В коде модуля при отправке уведомления:

python send_notify( obj=task, recipients=[user], template_name='module_code_TemplateName', extra_context={ 'executor_str': str(task.executor), 'project_str': str(task.project) if task.project else 'N/A', 'user_name': str(user.get_full_name() or user.username) } )

В шаблоне:

json { "subject": "Задача: {title}", "body": "Исполнитель: {executor_str}\nПроект: {project_str}" }

  1. Форматирование дат: Django автоматически форматирует даты в шаблонах. Для кастомного форматирования используйте фильтры Django в extra_context.

Типы данных полей

  • String - строка текста
  • Integer - целое число
  • Decimal - десятичное число (деньги, проценты)
  • Boolean - логическое значение (true/false)
  • Date - дата в формате YYYY-MM-DD
  • DateTime - дата и время в формате ISO 8601
  • FK - внешний ключ (Foreign Key), возвращает ID связанного объекта
  • UUID - уникальный идентификатор в формате UUID

Важные замечания

  1. Read-only поля - поля с пометкой (read-only) вычисляются автоматически и не могут быть изменены через API.
  2. Связанные объекты - при работе с API связанные объекты (например, manager, project) возвращаются как ID. Для получения полной информации используйте отдельный запрос к API или используйте вычисляемые поля (например, manager_name, project_name).
  3. Null значения - многие поля могут быть null. Всегда проверяйте наличие значения перед использованием в шаблонах.
  4. Форматирование - для форматирования дат, чисел и других значений в шаблонах уведомлений используйте extra_context в коде модуля.