Mit Django REST Framework habe ich 2 Serialisierer: PageSerializer
und CommentSerializer
.Pass Kontext von einem Serializer zum anderen?
CommentSerializer
hängt von einigen zusätzlichen "Kontext" -Wert ab, aber es bekommt es nicht direkt, stattdessen muss es von PageSerializer
bekommen, da sie eine verschachtelte Beziehung haben.
Also brauche ich so etwas haben:
class CommentSerializer(serializers.ModelSerializer):
...
my_field = serializers.SerializerMethodField()
def get_my_field(self, comment):
my_value = self.context['my_value']
...
class PageSerializer(serializers.ModelSerializer):
...
comments = CommentSerializer(
many=True,
context={'my_value': my_value} # my_value doesn't exist until __init__ is called, so I can't pass it
)
...
my_value = 1
page_serializer = PageSerializer(page, context={'my_value': my_value})
Aber natürlich kann dieser Code nicht funktionieren.
Welche Art von Workaround kann ich hier tun?
Oh .. das ist eine Erleichterung, danke! – user3134477