0
我有一個Order模型。我想跟蹤每個訂單的當前狀態以及它經歷的狀態。在Django中互相引用的兩個外鍵
我可以使用
class Order(models.Model):
current_state = models.ForeignKey('State')
class State(models.Model):
order = models.ForeignKey(Order)
或者是它更好地使用
class Order(models.Model):
pass
class State(models.Model):
order = models.ForeignKey(Order)
is_current = models.BooleanField(default=True)
我不知道這是否是不好的做法,有兩個外鍵引用對方。
我喜歡從最後創建的狀態對象獲取當前狀態的想法。但是如果我想按他們的狀態過濾所有的訂單呢?我可以在我的訂單模型中創建一個函數def get_current_state():return self.states.latest()'但我不知道如何在查詢集中使用它,當它不是數據庫中的字段時。我不能'Order.objects.filter(get_current_state__type = 1)' – Jamgreen