在 DRF(Django Rest Framework)的 Serializer 中,以 get_
開頭的方法是 Serializer Method Field 的方法名字首,用於自定義該欄位的值。
例如,如果你有一個 Serializer,裡面有一個 CharField
欄位,你可以透過定義一個以 get_
開頭的方法來自定義該欄位的值。示例如下:
from rest_framework import serializers
class MySerializer(serializers.Serializer):
name = serializers.CharField()
def get_name(self, obj):
return obj['name'].strip()
在上面的例子中,get_name
方法接受一個 obj
引數,用於從傳遞的資料中獲取該欄位的值,並在返回之前執行 .strip()
方法。
你可以在 get_
方法中接收傳遞給 Serializer 的資料,並透過該方法自定義欄位的值,例如從其他欄位中計算、格式化等。
要將引數傳遞到 Serializer Method Field 方法中,可以透過定義 Serializer Field 時的 source
引數進行傳遞。例如:
from rest_framework import serializers
class MySerializer(serializers.Serializer):
name = serializers.CharField(source='first_name')
def get_name(self, obj):
return obj['first_name'].strip()
在上面的例子中,name
欄位的值從 first_name
欄位中獲取,並在 get_name
方法中進行了處理。