Django 字段采用模型的值-class

Django fields taking value of model-class

所以我有两个模型TransactionUpdate,记录一些对象的交易和更新。然后我想要一个 table Timeline,它基本上记录了 transactionupdatetime_updatedpk 值。所以我想象这样一个Timelinetable

class Timeline
    model = <taking value of type of model: Transaction or Update, etc.>
    identifing_num = models.CharField(...)
    time_updated = models.DatetimeField(...)

我想实现的很简单,就是把其他所有有实际意义的记录按时间顺序记录下来。我当然可以查询这两个模型(TransactionUpdate),做一个 mergesort,然后得到一个按时间排序的 queryset,但我只是想知道这个 Timeline东西可以写下来

您可以使用 GenericForeignKey.

或者用null=TrueTransactionUpdate中添加两个外键。可以通过 属性:

访问具体模型
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