Ich verwende Field level Validation
in meinem Serializer und ich habe Situation, wo ich Wert des ersten Feldes während der Validierung zweiten Feld benötigen. Ich weiß, in object level validation
Ich kann Zugriff darauf haben, aber meine serailzer haben many=True
und in Objekt-Level-Validierung kann ich Clientseite nicht sagen, welche Iteration den Fehler ausgelöst haben.Erhalten Wert eines anderen Feldes in Feld Ebene Validierung in DRF
Serailzer:
class Keys_Serializer(serializers.Serializer):
"""
"""
key_id = serializers.IntegerField(required=True)
key_name = serializers.CharField(required=True)
value_id = serializers.IntegerField(required=False)
def validate_key_id(self, value):
"""
validate key id
"""
*** validate key_id here ***
return value
def validate_value_id(self, value):
"""
validate value_id w.r.t key_id
"""
*** I need key_id of current iteration here so that I can validate value_id. ***
return value
Gibt es eine Möglichkeit, den Wert von key_id in value_id Validierung des Zugriffs.
, welche Version von Django Ruhe Framework verwenden Sie? –
@MuhammadShoaib djangorestframework == 3.2.2 – user5594493
können Sie versuchen, mit self.otherfieldname zugreifen und dann validieren? In der DRF-Version <3 gibt es einen Parameternamen 'attrs' mit jeder Validierungsmethode auf Feldebene und dann können Sie einfach auf die anderen Werte mit' attr ['field_name'] 'zugreifen. Aber ich bin nicht sicher, wie man das in der Version> 3 –