我试图通过context
将变量从我的view
传递给序列化器。序列化器应该能够获取上下文变量并在包含嵌套序列化器的字段中使用它。
因为嵌套的序列化器字段不能是read_only
,所以我不能使用serializerMethodField
。
我是这样把context传递给序列化器的:
class MyListCreateAPIView(generics.ListCreateAPIView):
# [...]
def get_serializer_context(self):
return {
'request': self.request,
'format': self.format_kwarg,
'view': self,
'asTime': '2021-02-04 16:40:00', # <-- This is my context variable
}
这是我的序列化器:
class MySerializer(serialisers.ModelSerializer):
child = MyChildSerializer(read_only=False, asTime= ??) # <-- here I want to pass the context variable
class Meta:
model = MyModel
fields = '__all__'
我知道我可以用self.context.get('asTime')
访问上下文变量,但我不能在MySerializer
属性(子)中访问self
。我该怎么做?
1条答案
按热度按时间wbrvyc0a1#
您可以在init上更新子进程的上下文:
或者你可以在
to_representation
中捕获它: