When there is no content in a certain language, it needs to fallback to English

This commit is contained in:
Yansong Zhang 2025-10-11 15:35:26 +08:00
parent 6d2673ca3f
commit ae2bd7d116
1 changed files with 9 additions and 5 deletions

View File

@ -15,11 +15,15 @@ class BannerApi(Resource):
"""Get banner list."""
language = request.args.get("language", "en-US")
banners = (
db.session.query(ExporleBanner).where(ExporleBanner.status == "enabled",
ExporleBanner.language == language).order_by(ExporleBanner.sort).all()
)
# Build base query for enabled banners
base_query = db.session.query(ExporleBanner).where(ExporleBanner.status == "enabled")
# Try to get banners in the requested language
banners = base_query.where(ExporleBanner.language == language).order_by(ExporleBanner.sort).all()
# Fallback to en-US if no banners found and language is not en-US
if not banners and language != "en-US":
banners = base_query.where(ExporleBanner.language == "en-US").order_by(ExporleBanner.sort).all()
# Convert banners to serializable format
result = []
for banner in banners: