我有一个名为Order
和另一个OrderItem
的模型。OrderItem
表具有Order
表的外键。现在我已经在两个模型上安装并设置了[简单历史记录][1]。我试图获取订单历史记录,并使用OrderItem
表上的相关名称从历史记录中获取相关的OrderItem,但它返回了一个错误:
AttributeError:"HistoricalOrder"对象没有属性"order_items">
这是我的Order
和OrderItem
表。
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将帮助您获取相关的外键对象。