使用 QuerySet 在 Django 模型中计算 属性
calculated property in Django model with QuerySet
我正在开发一个使用 Django 后端的前端。
我想向一个包含 amCharts 的图表数据的 Django 模型添加一个新的计算 属性。
经过一番研究,我发现使用 @property
是解决问题的方法。
然而,所有实现 atm 的视图集都使用查询集,正如我在谷歌搜索后发现忽略计算的属性。
- 有没有办法保留查询集并让它使用我计算的属性?
- 如果不是:手动写出所有查询集操作是否可以解决问题?
代码:
# models.py
class MyModel:
# Normal props
@property
def calced(self):
return somecalc
# views.py
class MyModelView(ModelViewSet):
serializer_class = MyModelSerializer
def get_queryset(self):
return MyModel.objects.filter(id=self.kwargs['id_pk'])
正如@dirkgroten 所建议的,我在 django 发送我的结果之前使用 SerializerMethodField 添加了新的 json 字段。
我正在开发一个使用 Django 后端的前端。 我想向一个包含 amCharts 的图表数据的 Django 模型添加一个新的计算 属性。
经过一番研究,我发现使用 @property
是解决问题的方法。
然而,所有实现 atm 的视图集都使用查询集,正如我在谷歌搜索后发现忽略计算的属性。
- 有没有办法保留查询集并让它使用我计算的属性?
- 如果不是:手动写出所有查询集操作是否可以解决问题?
代码:
# models.py
class MyModel:
# Normal props
@property
def calced(self):
return somecalc
# views.py
class MyModelView(ModelViewSet):
serializer_class = MyModelSerializer
def get_queryset(self):
return MyModel.objects.filter(id=self.kwargs['id_pk'])
正如@dirkgroten 所建议的,我在 django 发送我的结果之前使用 SerializerMethodField 添加了新的 json 字段。