1
我正試圖構建一個Django應用程序,模擬現有的一組表。這些表都具有相同的字段,加上每個表的自定義字段。我想要做的是對這個結構進行建模,並根據它們所附的表格模型將記錄保存到特定的表格中。是否可以指示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..)
這可能嗎?我想我可以掛鉤到信號或保存方法中,但如果存在這種方法,我希望找到最簡單的方法。
這正是我最終實現它的原因,包括所有常見數據的抽象基礎模型。以這種方式創建額外的字段要比我打算做的要好得多。我打算使用add_to_class(在ModelBase上定義),但現在肯定不會。謝謝。 – 2010-10-11 09:08:37