2016-12-26 2 views
3

Ich arbeite mit Django-Rest-Framework-Serialisierer. Ich habe zwei Serialisierer, die mit dem anderen verschachtelt sind.DRF: Abrufen äußerer Eingabedaten von Nested Serializer Validierungsmethode

class NestedSerializer(serializers.Serializer): 
    value = AttributeValueField(required=True) 
    name = serializers.CharField(required=True) 

class OuterSerializer(serializers.Serializer): 
    info = serializers.CharField() 
    nested = NestedSerializer() 

Um die verschachtelten Serializer Daten I Eingangsdaten vom übergeordneten Serializer, so etwas wie diese abrufen müssen zu überprüfen:

class NestedSerializer(serializers.Serializer): 
    ... 
    def validate(self, data): 
     # of course, it doesn't work, but thats the idea. 
     info = self.parent.info 
     # then validate the NestedSerializer with info. 

ich keine Möglichkeit, den Zugang zu diesem Eingang finden zu bekommen Daten aus der Validierungsmethode. Irgendwelche Vorschläge? Danke für Ihre Hilfe :).

Antwort

1

Vor der Methode rufen DRF-Serialisierer to_internal_value(self, data). Sie erhalten dort alle Daten des Parent-Serialisierers. So wie Sie Methode im Serializer definiert haben, definieren Sie to_internal_value() Methode und fangen Eltern Serializer-Daten.

Verwandte Themen