master
du framework Django REST.classe GraphDomainSerializer(serializers.ModelSerializer):
user = serializers.HiddenField(default=serializers.CurrentUserDefault)
classe CurrentUserDefault(objet):
def set_context(self, serializer_field):
self.user = serializer_field.context['request'].user
def __call__(self):
return self.user
def __repr__(self):
return unicode_to_repr('%s()' % self.__class__.__name__)
def get_default(self):
"""
Renvoie la valeur par défaut à utiliser lors de la validation des données si aucune entrée
est prévu pour ce champ.
If a default has not been set for this field then this will simply
raise `SkipField`, indicating that no value should be set in the
validated data for this field.
"""
if self.default is empty or getattr(self.root, 'partial', False):
# No default, or this is a partial update.
raise SkipField()
if callable(self.default):
if hasattr(self.default, 'set_context'):
**self.default.set_context(self)**
return self.default()
return self.default
Fichier "/Users/lishijin/.pyenv/versions/3.7.2/lib/python3.7/site-packages/rest_framework/fields.py", ligne 490, dans get_default
self.default.set_context(self)
TypeError : set_context() manquant 1 argument de position requis : 'serializer_field'
[24/Jun/2019 14:34:45] "POST /graphs/ HTTP/1.1" 500 21130
La valeur par défaut doit être une instance, pas une classe : serializers.CurrentUserDefault()
comme indiqué dans la documentation
La valeur par défaut doit être une instance, pas une classe :
serializers.CurrentUserDefault()
comme indiqué dans la documentation
ça a résolu le problème
La valeur par défaut doit être une instance, pas une classe :
serializers.CurrentUserDefault()
comme indiqué dans la documentation
Merci, vous m'avez aidé à résoudre ce problème
Commentaire le plus utile
La valeur par défaut doit être une instance, pas une classe :
serializers.CurrentUserDefault()
comme indiqué dans la documentation