我有一个要求,当访问 django 模型 Lead
中的字段 Price
时,我必须应用一些业务逻辑并更新价格。
我可以在序列化程序/ View 中完成。然而,此对象可由多个 View 访问,因此在多个位置放置代码并不是一个可行的设计。
所以我正在寻找一种可以像 get_price(self)
那样获得控制权的方法。
class Lead(models.Model):
price = models.IntegerField(_('price'), default=10)
def get_price(self):
''' Looking for something like this '''
.. Logic ...
return self.price
get_price
在任何序列化程序/ View 访问此模型时调用。问题是访问此模型时未调用 get_price
。
最佳答案
可以使用类的属性方法。这将通过对象进行访问。您可以只在序列化程序中包含该字段。
class Lead(models.Model):
price = models.IntegerField(_('price'), default=10)
@property
def total_price(self):
''' Looking for something like this '''
.. Logic ...
return self.price
现在您可以在序列化程序中包含 total_prcie 字段。
class LeadSerializer(serializers.ModelSerializer):
class Meta:
model = Lead
fields = ('total_prize', )
关于python - django模型获取字段方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46557052/