Динамические/клонированные модели Django

Я ищу способ достичь следующего с помощью Django, буду признателен, если кто-то сможет указать мне правильное направление для этого.

В приложении зарегистрировано 3 модели (Модель1, Модель2 и Модель3). Пользователь отправляет форму (одно поле, например, имя проекта и кнопка Submit), допустим, проект, который он создает, отправляя эту форму, будет 'PROJECT001'. Тогда ожидается, что будет сделано копирование/клонирование 3 моделей (Model1, Model2 и Model3) с суффиксом проекта, т.е. 3 новые модели должны быть созданы 'PROJECT001_Model1', 'PROJECT001_Model2', 'PROJECT001_Model3'.

Я пытался найти это, но не смог найти никаких ресурсов. Самое близкое, что я нашел, это https://code.djangoproject.com/wiki/DynamicModels, но эта документация кажется запутанной. Любая помощь будет принята с благодарностью. Спасибо.

Если нет конкретной причины для клонирования моделей, я бы предложил другую структуру: Вы могли бы добавить модель проекта и создать внешние ключи для трех других моделей, ссылающихся на нее. Таким образом, у вас будут экземпляры Model1, Model2, Model3, специфичные для отдельных проектов.

from django.db import models

class Project(models.Model):
    pass

class Model1(models.Model):
    project = models.ForeignKey(Project, on_delete=models.CASCADE)

class Model2(models.Model):
    project = models.ForeignKey(Project, on_delete=models.CASCADE)

class Model3(models.Model):
    project = models.ForeignKey(Project, on_delete=models.CASCADE)
Вернуться на верх