diff --git a/apps/daren_detail/models.py b/apps/daren_detail/models.py index 40accf0..91dfe48 100644 --- a/apps/daren_detail/models.py +++ b/apps/daren_detail/models.py @@ -248,7 +248,12 @@ class CreatorProfile(models.Model): def get_avatar_url(self): """获取头像URL,优先返回本地图片,其次返回外部URL""" if self.avatar: - return self.avatar.url + # 检查并移除可能重复的/media/前缀 + url = self.avatar.url + if url.startswith('/media/') and '/media/' in url[7:]: + # 如果存在重复的/media/,只保留一个 + return url.replace('/media/media/', '/media/') + return url elif self.avatar_url: return self.avatar_url return None diff --git a/apps/daren_detail/views.py b/apps/daren_detail/views.py index 0fc1970..e0a3c99 100644 --- a/apps/daren_detail/views.py +++ b/apps/daren_detail/views.py @@ -170,7 +170,7 @@ def filter_creators(request): formatted_creator = { "Creator": { "name": creator.name, - "avatar": creator.avatar_url + "avatar": creator.get_avatar_url() }, "Category": creator.category, "E-commerce Level": e_commerce_level_formatted, @@ -643,7 +643,7 @@ def get_creator_detail(request, creator_id): "creator": { "id": creator.id, "name": creator.name, - "avatar": creator.avatar_url, + "avatar": creator.get_avatar_url(), "email": creator.email, "social_accounts": { "instagram": creator.instagram, # 示例数据,实际应从数据库获取 @@ -955,7 +955,7 @@ def get_creator_brand_campaigns(request, creator_id=None): creator_info = { "id": creator.id, "name": creator.name, - "avatar": creator.avatar_url, + "avatar": creator.get_avatar_url(), "category": creator.category, "exposure_level": creator.exposure_level, } @@ -2216,7 +2216,7 @@ def get_public_creators(request): "public_id": public_creator.id, "creator_id": creator.id, "name": creator.name, - "avatar": creator.avatar_url, + "avatar": creator.get_avatar_url(), "category": creator.category, "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, @@ -2633,7 +2633,7 @@ def get_private_pool_creators(request, pool_id=None): "relation_id": relation.id, "creator_id": creator.id, "name": creator.name, - "avatar": creator.avatar_url, + "avatar": creator.get_avatar_url(), "category": creator.category, "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, @@ -3187,7 +3187,7 @@ def filter_public_creators(request): "public_id": public_creator.id, "creator_id": creator.id, "name": creator.name, - "avatar": creator.avatar_url, + "avatar": creator.get_avatar_url(), "category": creator.category, "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, @@ -3423,7 +3423,7 @@ def filter_private_pool_creators(request): "pool_id": private_pool.id, # 添加池ID "pool_name": private_pool.name, # 添加池名称 "name": creator.name, - "avatar": creator.avatar_url, + "avatar": creator.get_avatar_url(), "category": creator.category, "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, diff --git a/media/xiaohaige.jpg b/media/xiaohaige.jpg new file mode 100644 index 0000000..188e26b Binary files /dev/null and b/media/xiaohaige.jpg differ