繁体   English   中英

django 模型获取字段方法

[英]django model get field method

我有一个要求,当访问 django 模型Lead Price字段时,我必须应用一些业务逻辑并更新价格。

我可以在序列化程序/视图中完成。 然而,这个对象被多个视图访问,因此在多个地方有一个代码不是一个可行的设计。

所以我正在寻找一种可以像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在任何序列化程序/视图访问此模型时调用。 问题是在访问此模型时未调用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', )

我以一种非常不同的方式完成了这项任务,我不得不创建另一个称为 TrackLead Table 的表来跟踪何时进行了更改。

后来在__init__函数中,我在需要时更新了价格字段。 我没有找到任何其他方法来完成它。 然而它现在工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM