aus der Dokumentation:Django REST-Framework Serializer Feld erforderlich = false
read_only auf true gesetzt ist, um sicherzustellen, dass das Feld verwendet wird, wenn eine Darstellung der Serialisierung, werden aber nicht verwendet, wenn eine Instanz bei der Deserialisierung zu aktualisieren.
Defaults auf False
erforderlich Normalerweise wird ein Fehler ausgelöst werden, wenn ein Feld bei der Deserialisierung nicht geliefert wird. Setzen Sie den Wert auf false, wenn dieses Feld während der Deserialisierung nicht benötigt wird.
Standardeinstellung ist True. So
Ich habe ein Modell, das ein Feld hat, die keine Nullwerte enthalten ist, aber ich will es in der pre_save Methode aufgefüllt werden, so habe ich das Feld zu required=False
in Serializer gesetzt, aber scheint nicht zu funktionieren. Ich bekomme immer noch Fehler beim Speichern des Datensatzes.
class FavoriteListSerializer(serializers.ModelSerializer):
owner = serializers.IntegerField(required=False)
class Meta:
model = models.FavoriteList
Update: Ich habe serializer_class = serializers.FavoriteListSerializer
zum Viewset hinzugefügt, nun statt This field is required
zu bekommen, die ich über die Validierung bekam denken, aber dann This field cannot be null.
ich bekomme ich die pre_save Methode überprüft haben, nicht ausgeführt wird, irgendwelche Ideen ?
Hmmm Ich sehe, basierend auf Ihrer Antwort habe ich versucht, Validatoren = [] Serializer Felder hinzufügen und immer noch nicht funktioniert. Diese Art von Dingen funktioniert nicht wie angekündigt ... –
Haben Sie die 'get_validation_exclusions()' Methode hinzugefügt? Es überschreibt die vorhandenen Validierungen im Modell. –
Ja nach dem Hinzufügen funktioniert diese Methode. Ich habe versucht, validators = [] hinzufügen, um zu vermeiden, get_validation_exclusions() überschreiben, aber es hat nicht funktioniert –