django简单的历史如何获取相关的外键对象



我有一个名为Order和另一个OrderItem的模型。OrderItem表具有Order表的外键。现在我已经在两个模型上安装并设置了[简单历史记录][1]。我试图获取订单历史记录,并使用OrderItem表上的相关名称从历史记录中获取相关的OrderItem,但它返回了一个错误:

AttributeError:"HistoricalOrder"对象没有属性"order_items">

这是我的OrderOrderItem表。

class OrderItem(models.Model):
order = models.ForeignKey(
"Order", on_delete=CASCADE, related_name="order_items"
)
content_type = models.ForeignKey(ContentType, on_delete=models.RESTRICT)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey("content_type", "object_id")
history = HistoricalRecords()
.......
class Order(models.Model):
po_id = models.CharField(max_length=50, unique=True, blank=True, null=True)
history = HistoricalRecords()
.....

下面的命令给了我一个命令。

order = Order.history.filter(id=102).first()

但是如果我运行order.order_items.all(),那么我会得到属性错误。

如果我在实际模型上运行查询,那么我可以使用以下命令获得order_items。

Order.objects.get(id=102(.Order_items.all((

是否可以以与普通django模型相同的方式从历史表中获取order_items。我怎么能这样工作呢。

谢谢。[1] :https://django-simple-history.readthedocs.io/en/latest/index.html

你碰巧尝试过这个吗https://django-simple-history.readthedocs.io/en/latest/querying_history.html#historicforeignkey

HistoricForeignKey将帮助您获取相关的外键对象。

最新更新