Я пытаюсь создать приложение Django, которое моделирует существующий набор таблиц. Все эти таблицы имеют одинаковые поля, а также настраиваемые поля для каждой таблицы. То, что я хочу сделать, это смоделировать эту структуру и сохранить записи в конкретной таблице в зависимости от того, к какой модели таблицы они прикреплены.
Эти таблицы можно создавать довольно часто, поэтому невозможно создавать новые модели для каждой таблицы.
Возможно, код продемонстрирует, что я пытаюсь сделать более четко:
class CustomField(models.Model):
column_name = models.CharField(max_length=100)
description = models.CharField(max_length=255, blank=True, null=True)
class CustomData(models.Model):
custom_field = models.ForeignKey(CustomField)
value = models.CharField(max_length=100, blank=True, null=True)
# value will always be a nullable varchar(100)
class Table(models.Model):
table_name = models.CharField(max_length=255)
name = models.CharField(max_length=100)
custom_fields = models.ManyToManyField(CustomField)
class Record(models.Model):
table = models.ForeignKey(Table)
... list of common fields omitted ...
custom_values = models.ManyToManyField(CustomData)
При сохранении новой записи, имеющей внешний ключ, в 'table_1', я бы хотел, чтобы конечная операция выполнялась в формате insert into table_1 (..fields..) values (..field values..)
Возможно ли это? Думаю, я мог бы подключиться к сигналам или к методу сохранения, но я бы хотел найти самый простой подход, если таковой существует.