Comment obtenir une Demande.L'utilisateur dans Django-Repos-Cadre sérialiseur?
J'ai essayé quelque chose comme cela, il ne fonctionne pas.
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
def save(self):
user = self.context['request.user']
title = self.validated_data['title']
article = self.validated_data['article']
J'ai besoin d'un moyen d'être en mesure d'accéder à la demande.utilisateur de mon Sérialiseur de classe.
- DRF
CurrentUserDefault
est absolument ❤️ django-rest-framework.org/api-guide/validators/...
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas accéder à la
request.user
directement. Vous avez besoin d'accéder à la demande de l'objet, et de récupérer l'attribut de l'utilisateur.Comme ceci:
Ou, pour être plus sûr,
Plus sur supplément de contexte peut être lu ici
NameError: name 'self' is not defined
validate()
méthode, de soi.le contexte est un vide dict. Pourquoi?En fait, vous n'avez pas à s'embêter avec le contexte. Il y a une bien meilleure manière de le faire:
Comme Igor mentionné dans d'autres réponses, d'utilisation pouvez utiliser CurrentUserDefault. Si vous ne souhaitez pas remplacer méthode save juste pour cette, puis utiliser doc: