我有一个API端点,该端点返回我的一个模型的对象列表。 我有一个非常简单的序列化程序,当前返回所有模型字段。
我现在需要在此序列化器中添加另一个字段,该字段是通过在模型字段和另一个也是动态计算的数据结构上应用逻辑来计算的,但是每次调用API时只应计算一次
对于每个API调用,而不是针对序列化器返回的每个对象,向串行器提供此结构的方式是什么?
我的ModelViewSet(没有多余的字段)非常简单:
class MyModelViewset(ModelViewSet):
queryset = SomeModel.objects.all()
serializer_class = SomeModelSerializer
答案 0 :(得分:0)
关于如何实现此目标的一些建议:
In [3]: def factorial(n):
...: if n == 0:
...: return 1
...: return n * factorial(n-1)
...: factorial(3)
...:
Out[3]: 6
类中创建@property,并且可以通过序列化器字段将其公开为只读。 Django也有@cached_property,因此该值只计算一次,并且只要实例执行就可以持续存在这是一个简单的示例。
SomeModel