Features: 1) Replace constance with django.conf.settings for dynamic config values; 2) Update UserSerializer to include avatar instead of avatar_url.

Fixes: 1) Remove unused `get_avatar_url` method in `UserSerializer`.

Extra: 1) Reorganize imports in serializers and middleware for clarity; 2) General code cleanup in `UserSerializer`.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-11-11 16:17:40 +03:00
parent ee25bb67f0
commit 9d97ec3d76
2 changed files with 5 additions and 13 deletions

View file

@ -4,7 +4,7 @@ from contextlib import suppress
from hmac import compare_digest
from typing import Any
from constance import config
from django.conf import settings
from django.contrib.auth import authenticate
from django.contrib.auth.models import update_last_login
from django.contrib.auth.password_validation import validate_password
@ -16,9 +16,9 @@ from rest_framework.fields import (
BooleanField,
CharField,
EmailField,
JSONField,
ListField,
SerializerMethodField,
JSONField,
)
from rest_framework.serializers import ModelSerializer, Serializer
from rest_framework_simplejwt.exceptions import TokenError
@ -30,7 +30,6 @@ from rest_framework_simplejwt.tokens import RefreshToken, Token, UntypedToken
from engine.core.models import Product
from engine.core.serializers import ProductSimpleSerializer
from engine.core.utils.security import is_safe_key
from django.conf import settings
from engine.vibes_auth.models import User
from engine.vibes_auth.validators import validate_phone_number
@ -38,25 +37,18 @@ logger = logging.getLogger(__name__)
class UserSerializer(ModelSerializer):
avatar_url = SerializerMethodField(required=False, read_only=True)
password = CharField(write_only=True, required=False)
confirm_password = CharField(write_only=True, required=False)
is_staff = BooleanField(read_only=True)
recently_viewed = SerializerMethodField(required=False, read_only=True)
attributes = JSONField(required=False)
@staticmethod
def get_avatar_url(obj) -> str:
if obj.avatar:
return f"https://api.{config.BASE_DOMAIN}/media/{obj.avatar!s}"
return f"https://api.{config.BASE_DOMAIN}/static/person.png"
class Meta:
model = User
fields = [
"uuid",
"email",
"avatar_url",
"avatar",
"is_staff",
"recently_viewed",
"attributes",

View file

@ -1,7 +1,7 @@
import logging
from os import getenv
from constance import config
from django.conf import settings
from django.contrib.auth.models import AnonymousUser
from django.core.exceptions import BadRequest, DisallowedHost, PermissionDenied, ValidationError
from django.http import HttpResponseForbidden
@ -21,7 +21,7 @@ class CustomCommonMiddleware(CommonMiddleware):
try:
return super().process_request(request)
except DisallowedHost:
return redirect(f"https://api.{config.BASE_DOMAIN}")
return redirect(f"https://api.{settings.BASE_DOMAIN}")
class CustomLocaleMiddleware(LocaleMiddleware):