Динамические/клонированные модели 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)