diff --git a/apps/hadis/serializers/reference_v2.py b/apps/hadis/serializers/reference_v2.py index 8b3c60a..0c39a44 100644 --- a/apps/hadis/serializers/reference_v2.py +++ b/apps/hadis/serializers/reference_v2.py @@ -339,10 +339,17 @@ def _get_request_lang_v2(serializer_instance) -> str: request = serializer_instance.context.get("request") if hasattr(serializer_instance, "context") and serializer_instance.context else None lang = None if request: - lang = getattr(request, "LANGUAGE_CODE", None) or request.headers.get("Accept-Language") or request.query_params.get("lang") + query_params = getattr(request, "query_params", None) or getattr(request, "GET", None) + if query_params: + lang = query_params.get("language_code") or query_params.get("lang") + if not lang and hasattr(request, "headers"): + lang = request.headers.get("Accept-Language") + if not lang: + lang = getattr(request, "LANGUAGE_CODE", None) if not lang: - lang = get_language() or "ru" - return str(lang).split(",")[0].split("-")[0].strip().lower() or "ru" + lang = get_language() or "en" + code = str(lang).split(",")[0].split(";")[0].split("-")[0].strip().lower() + return code if code in ("ru", "en", "ar") else "en" def _resolve_author_city(city_obj, fallback_json, request, arabic=False): @@ -387,7 +394,9 @@ class _BaseBookAuthorV2Mixin(serializers.Serializer): known_as = LocalizedField() arabic_known_as = ArabicLocalizedField(source='known_as') scholarity = LocalizedField() + arabic_scholarity = ArabicLocalizedField(source='scholarity') tabaqa = LocalizedField() + arabic_tabaqa = ArabicLocalizedField(source='tabaqa') rutba = serializers.SerializerMethodField() rutba_detail = serializers.SerializerMethodField() features = serializers.SerializerMethodField() @@ -470,7 +479,7 @@ class BookAuthorListSerializer(_BaseBookAuthorV2Mixin, serializers.ModelSerializ model = BookAuthor fields = [ 'id', 'slug', 'name', 'arabic_name', 'image', - 'known_as', 'arabic_known_as', 'scholarity', 'tabaqa', + 'known_as', 'arabic_known_as', 'scholarity', 'arabic_scholarity', 'tabaqa', 'arabic_tabaqa', 'rutba', 'rutba_detail', 'features', 'arabic_features', 'features_detail', 'origin', 'arabic_origin', 'lived_in', 'arabic_lived_in', 'died_in', 'arabic_died_in', @@ -488,7 +497,7 @@ class BookAuthorDetailSerializer(_BaseBookAuthorV2Mixin, serializers.ModelSerial model = BookAuthor fields = [ 'id', 'slug', 'name', 'arabic_name', 'image', - 'known_as', 'arabic_known_as', 'scholarity', 'tabaqa', + 'known_as', 'arabic_known_as', 'scholarity', 'arabic_scholarity', 'tabaqa', 'arabic_tabaqa', 'rutba', 'rutba_detail', 'features', 'arabic_features', 'features_detail', 'origin', 'arabic_origin', 'lived_in', 'arabic_lived_in', 'died_in', 'arabic_died_in', @@ -550,7 +559,9 @@ class BookAuthorSyncSerializer(_BaseBookAuthorV2Mixin, serializers.ModelSerializ 'known_as', 'arabic_known_as', 'scholarity', + 'arabic_scholarity', 'tabaqa', + 'arabic_tabaqa', 'rutba', 'rutba_detail', 'features',