有两个相关的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
方法,但这不是一个选项。
答案 0 :(得分:0)
似乎没有额外的Django基础设施来支持所请求的功能。它归结为Python的代码内省方式,可与inspect
标准模块及其方法一起使用。绝对不是生产解决方案,猴子修补或子类化似乎相形见绌。