ユーザーがテーブル表現内に情報を保存できるモデルを作成したいと考えています。私が達成したい主な目標は、コードを編集せずに、列の削除/追加など、テーブルを手動で変更できるようにすることです。
この目的のためにエレガントなモデルを作成する方法がわかりません。助けていただけますか?
ある種のオンザフライ テーブル変更システムを作成するべきではありません。それは非常識な道のように聞こえます...代わりに、必要なデータ型を使用してテーブル レイアウトをモデル化できます。
例えば:
INTEGER, FLOAT, TEXT = range(3)
class Table(models.Model):
columns = models.ManyToManyField('TableColumn')
class TableColumn(models.Model):
name = ...
data_type = models.SmallIntegerField(choices=[(INTEGER, 'Integer'), ...])
class TableRow(models.Model):
order = ...
column = models.ForeignKey('TableColumn')
value_float = ...
value_text = ...
value_integer = ...
def get_value(self):
if self.column.data_type == INTEGER:
return self.value_integer