Использование модели для получения полей другой модели
У меня есть одна модель для определения полей в моей системе
class MetadataField(models.Model):
FIELD_TYPE = (
('TXT', "Text"),
('CB', 'Checkbox'),
('DD', 'DropDown')
)
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
title = models.CharField(max_length=100)
type = models.CharField(max_length=200, choices=FIELD_TYPE, default='TXT')
workflow = models.ManyToManyField('Workflow')
created_on = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
Каждое поле связано с рабочим процессом. Вот моя модель рабочего процесса
class Workflow(models.Model):
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
name = models.CharField(max_length=200)
created_on = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
У меня есть модель проекта.
class Project(models.Model):
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
title = models.CharField(max_length=100)
workflow = models.ManyToManyField('Workflow')
created_on = models.DateTimeField(auto_now_add=True)
Допустим, есть 4 проекта. Каждый проект связан с рабочим процессом
Проект 1 : Рабочий процесс 1 Проект 2 : Рабочий процесс 1 Проект 3 : Рабочий процесс 2 Проект 4 : Рабочий процесс 3
Я хочу, чтобы каждый проект имел свою информацию (метаданные). Поля метаданных для каждого проекта должны происходить из полей, созданных (в модели полей) для связанного рабочего процесса. Это похоже на форму, где соответствующие поля исходят из созданных полей, и пользователь может ввести значение для каждого из этих полей. Как мне написать модель для хранения этих метаданных? Придется ли мне писать отдельную модель для каждого рабочего процесса?