python - django模型获取字段方法

标签 python django django-rest-framework

我有一个要求,当访问 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/

相关文章:

django - 管理员登录停止运行 Django

sql - Django多对多: Best way to get elements in one related query set but exclude elements in other related query sets?

python - 获取 Django 应用程序中的所有表名

django - 如何将django rest api中的用户与Auth0同步

python - 如何将django中的url值传递给 View

python - 如何使用 Pyramid 检查浏览器 cookies 支持

python - 将 PNG 图像编码为 Base64 时出现 AttributeError

django-rest-framework - 我是否需要在 Django Rest Framework 的 ViewSet 和 Serializer 中声明查询集?

python - 如何在 Python 中获取两个 html 标签之间的所有内容?

python - 如何绘制多个 Pandas 列