From 7b2e8a12ff7dcacd5d65832d81d559716eec7ae4 Mon Sep 17 00:00:00 2001 From: Michele Awada <75516947+MicheleAwada@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:14:51 +0300 Subject: [PATCH] added nullIfNotAuthed arg to CurrentUserDefault to prevent error when using a optional user field and the user isnt authenticated --- rest_framework/fields.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 0b56fa7fb..7481c31a6 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -262,8 +262,12 @@ class CreateOnlyDefault: class CurrentUserDefault: requires_context = True + def __init__(self, nullIfNotAuthed = False): + self.nullIfNotAuthed = nullIfNotAuthed def __call__(self, serializer_field): + if self.nullIfNotAuthed and not serializer_field.context['request'].user.is_authenticated: + return None return serializer_field.context['request'].user def __repr__(self):