Если у меня есть вложенный сериализатор:
class ChildSerializer(ModelSerializer):
class Meta:
fields = ('c_name', )
model = Child
class ParentSerializer(ModelSerializer):
child = ChildSerializer(many=True, read_only=True)
class Meta:
model = Parent
fields = ('p_name', 'child')
И я хочу получить доступ к контексту в вложенном сериализаторе, как я могу это сделать? Насколько я могу судить, контекст не передается Ребенку.
Я хочу иметь возможность реализовать модель разрешений для каждого пользователя в полях, потому что я переопределил метод get_fields() ModelSerializer:
def get_fields(self):
fields = super().get_fields()
....
for f in fields:
if has_rights(self.context['request'].user, f, "read"):
ret_val[f] = fields[f]
....
return ret_val
Что работает для обычных сериализаторов, но контекст, и поэтому запрос и пользователь недоступны, когда вложенный дочерний элемент передается get_fields(). Как получить доступ к контексту, когда сериализатор вложен?