Добавление столбцов в модель в DJango на основе условия if else

Это мой код Django для моей модели Я хочу иметь столбцы в модели, основанные на значении типа графика, введите столбец там`

class DashboardCreativeQuery(models.Model):
query_name = models.CharField(max_length=256, null=False, unique=True)
query = models.TextField( null=False)
chart_type = models.ForeignKey(DashboardCreativeCharts, blank=True, null=True, related_name='chart_type',
                           on_delete=models.CASCADE)
if chart_type:
    test=  JSONField(null=False)

Как я могу это сделать?

По умолчанию django использует реляционную базу данных . Реляционная база данных хранит данные в виде отношений:

Отношение определяется как набор кортежей, которые имеют одинаковые атрибуты.

Это означает, что в отношении (таблице) все тюли (строки) должны иметь одинаковые атрибуты (столбцы). По этой причине, если вы используете отношение (таблицу) для хранения данных, вам не следует динамически изменять поля модели.

Что вы можете сделать

  • Посмотрите на django наследование моделей, возможно, это решение для вас.
  • Переместите ваше решение на no-sql бэкенд, например mongo.
Вернуться на верх