初始开放:我正在使用 postgresql JSONFields。
我的模型中有以下attribute
(字段)User
:
class User(AbstractUser):
...
benefits = JSONField(default=dict())
...
我目前基本上使用 DRF 为前端的每个用户序列化好处:
benefits = UserBenefit.objects.filter(user=self)
serializer = UserBenefitSerializer(benefits, many=True)
由于底层返回的收益变化很小而且很慢,所以我考虑每次发生变化时都将JSON“缓存”在数据库中以提高UserBenefit.objects.filter(user=user)
QuerySet的性能。相反,成为user.benefits
并有望减轻超过 10 万用户的数据库负载。
第一个问题:
我应该这样做吗?
第二问:
有没有一种有效的方法来编写对应serializer.data
<class 'rest_framework.utils.serializer_helpers.ReturnList'>
于 JSON 字段的内容?
我目前正在使用:
data = serializers.serialize("json", UserBenefit.objects.filter(user=self))