我有一个带有一些自定义字段的序列化器,这些字段取决于特定的查询。问题是,每次序列化程序尝试获取该字段的值时,它都必须对数据库执行查询。如果序列化器是一个 Many=True 序列化器呢?
class ExampleSerializer(serializers.ModelSerializer):
field_one = serializers.SerializerMethodField()
field_two = serializers.SerializerMethodField()
field_three = serializers.SerializerMethodField()
.
.
.
def get_field_one(self, obj):
try:
# This is where i do the query
query_result = obj.objects.filter(filter=self.context.get("filter").first()
if query_result:
# Do field one stuff
except Exception:
# Do exception stuff
def get_field_two(self, obj):
try:
# This is where i do the query
query_result = obj.objects.filter(filter=self.context.get("filter").first()
if query_result:
# Do field two stuff
except Exception:
# Do exception stuff
def get_field_three(self, obj):
try:
# This is where i do the query
query_result = obj.objects.filter(filter=self.context.get("filter").first()
if query_result:
# Do field three stuff
except Exception:
# Do exception stuff
有没有办法将该结果存储在序列化器的属性中?另外,如果我在序列化器字段之一中设置一个值,如何检索同一序列化器中的另一个字段并进行一些数学运算?
偶然的你
相关分类