Features: 1) Add retrieve_user argument handling with pop for enhanced parameter management in serializers;

Fixes: 1) Remove redundant `retrieve_user` initialization from constructors;

Extra: Minor code cleanup for consistency and readability in serializers.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-11-25 11:28:30 +03:00
parent c581534a3b
commit acd2f752b9

View file

@ -134,11 +134,12 @@ class TokenObtainSerializer(Serializer):
default_error_messages = {"no_active_account": _("no active account")}
def __init__(self, *args, **kwargs) -> None:
retrieve_user: bool = kwargs.pop("retrieve_user", True)
super().__init__(*args, **kwargs)
self.user: User | None = None
self.user_uuid: str | None = None
self.retrieve_user: bool = kwargs.get("retrieve_user", True)
self.retrieve_user: bool = retrieve_user
self.fields[self.username_field] = CharField(write_only=True)
self.fields["password"] = PasswordField()
@ -174,8 +175,6 @@ class TokenObtainPairSerializer(TokenObtainSerializer):
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.retrieve_user: bool = kwargs.get("retrieve_user", True)
def validate(self, attrs: dict[str, Any]) -> dict[str, str]:
data = super().validate(attrs)
@ -203,9 +202,10 @@ class TokenRefreshSerializer(Serializer):
token_class = RefreshToken
def __init__(self, *args, **kwargs) -> None:
retrieve_user: bool = kwargs.pop("retrieve_user", True)
super().__init__(*args, **kwargs)
self.retrieve_user: bool = kwargs.get("retrieve_user", True)
self.retrieve_user: bool = retrieve_user
def validate(self, attrs: dict[str, Any]) -> dict[str, str]:
refresh = self.token_class(attrs["refresh"])
@ -236,9 +236,10 @@ class TokenVerifySerializer(Serializer):
token = CharField(write_only=True)
def __init__(self, *args, **kwargs) -> None:
retrieve_user: bool = kwargs.pop("retrieve_user", True)
super().__init__(*args, **kwargs)
self.retrieve_user: bool = kwargs.get("retrieve_user", True)
self.retrieve_user: bool = retrieve_user
def validate(self, attrs: dict[str, None]) -> dict[Any, Any]:
token = UntypedToken(attrs["token"])