Ich möchte ein Passwort auf der Serverseite erstellen und es an den Benutzer zurücksenden. Unten ist der Code, den ich geschrieben habe:Zugriff auf ein SerializerMethodField in create()
class ASCreateSerializer(serializers.Serializer):
name = serializers.CharField(write_only = True)
password = serializers.SerializerMethodField()
def get_password(self, obj):
from django.utils.crypto import get_random_string
password = get_random_string(length=16)
return password
def create(self, validated_data):
name = validated_data['name']
as = AS.objects.get_or_create(name = name,
password = validated_data['password']
)
Ich bekomme einen Schlüsselfehler für "Passwort". Wie kann ich auf den Wert SerializerMethodField
in create()
zugreifen?
Sie sind sicher, ob Kennwortschlüssel auf validate_date ist ?, überprüfen auch, ob Schlüssel exist –
@juliansalas Anscheinend ist es nicht und damit der Fehler. Die Frage ist, wie sonst kann ich dann auf den Wert dieses (Passwort-) Feldes zugreifen? – toothie
Haben Sie 'self.get_password()' versucht? 'SerializerMethodField' ist ein schreibgeschütztes Feld. –