所以我有两个模型Transaction
和Update
,它们记录了一些对象的事务和更新。然后我想要一个表Timeline
,它基本上记录了pk
或transaction
和update
的{{1}}值。所以我想象这样一个time_updated
表
Timeline
我想要实现的只是简单,只是为了保留所有其他实际有意义的记录的按时间顺序记录。我当然可以查询两个模型(class Timeline
model = <taking value of type of model: Transaction or Update, etc.>
identifing_num = models.CharField(...)
time_updated = models.DatetimeField(...)
和Transaction
),执行Update
,并获得按时间排序的mergesort
,但只是好奇这个{{1}事情可以写下来。
答案 0 :(得分:0)
您可以使用GenericForeignKey。
或者使用Transaction
将两个ForeignKeys添加到Update
和null=True
。可以通过属性访问具体模型:
class TimeLine(models.Model):
transaction = models.ForeignKey(Transaction, null=True)
update = models.ForeignKey(Update, null=True)
identifing_num = models.CharField(...)
time_updated = models.DatetimeField(...)
@property
def model(self):
return self.transaction or self.update