class CurrentUser(object):
def set_context(self, serializer_field):
self.user_obj = serializer_field.context['request'].user
def __call__(self):
return self.user_obj
class GetObjectFlow(object):
def set_context(self, serializer_field):
self.object_flow = serializer_field.context['request'].data.get('object_flow') # 這裡需要在views中傳進去呀,djangocontext上下文中才能取到
def __call__(self):
return self.object_flow
class AddHolidaySerializer(serializers.ModelSerializer, BaseModelSerializer):
user = serializers.HiddenField(default=CurrentUser()) # 給使用者外鍵賦目前請求的user
object_flow = serializers.HiddenField(default=GetObjectFlow()) # 後端自己處理一些特殊的外鍵
status = serializers.HiddenField(default=0) # 預設新增時給status賦初值
class Meta:
model = Holiday
exclude = ('deleted',)