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