0
有兩個相關的Django模型,例如:檢索相關的調用者實例可能嗎? (Django的)
from django.db import models
class Shipping(models.Model):
def calc_by_order(self):
# calculate shipping by order's total
return SHIPPING_RATE * ??? # self.order_set.<something>
class Order(models.Model):
shipping = models.ForeignKey(Shipping)
total = models.DecimalField()
好奇,是否有可能在Shipping.calc_by_order
可選的回引主叫實例,並用它來滿足的方法訪問:
order = Order.objects.last()
print order.shipping.calc_by_order()
我可以明確地將訂單的實例傳遞給calc_by_order
,但是如果這確實是必要的,則會感興趣。
我也知道calc_by_order
方法可以定義在Order
模型,但這不是一個選項。
爲什麼不是在訂單上定義它的選項?這絕對是最有意義的。 –
@DanielRoseman由於Order是第三方框架的模型,因此可能無法修改。我可以在運行時修補它,但這有點「髒」的解決方案。我也可以定義和使用它的子類,但是對於這樣簡單的情況,懷疑這值得額外的表和數據庫查詢。 – joanblackmoore
請注意,問題示例中的外鍵關係是通過框架API允許在settings.py中定義其他模型字段來實現的。只是領域,而不是方法。 – joanblackmoore