问题场景:在对某个表的 queryset 进行序列化的时候,我需要将一个可能会实时变更的临时数据也放进 queryset 中的每个
obj 对象中,而正常情况下,obj 对象是不允许你添加不是自己表字段中的其他属性(这会引发异常)。
解决问题: 当你想在某个表对象中添加一些临时属性,而不是添加表字段的情况下,就可以使用以下方法添加自定义属性
# models.py
class Goods(models.Model):
name = models.CharField(verbose_name="名称", max_length=32)
@property
def title(self):
# 读取 title 值
return self.title
@title.setter
def title(self, value):
# 存储 title 值
self.title = value
# views.py
goods_obj = Goods.objects.filter(id=1).first()
# 存储
goods_obj.title = "标签1"
# 获取
title = goods_obj.title