问题场景:在对某个表的 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