diff --git a/apps/daren_detail/migrations/0003_creatorprofile_platform_url.py b/apps/daren_detail/migrations/0003_creatorprofile_platform_url.py new file mode 100644 index 0000000..bf2d63e --- /dev/null +++ b/apps/daren_detail/migrations/0003_creatorprofile_platform_url.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.1 on 2025-06-12 02:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('daren_detail', '0002_delete_brandcampaign'), + ] + + operations = [ + migrations.AddField( + model_name='creatorprofile', + name='platform_url', + field=models.URLField(blank=True, max_length=500, null=True, verbose_name='平台链接'), + ), + ] diff --git a/apps/daren_detail/models.py b/apps/daren_detail/models.py index 91dfe48..f010d2a 100644 --- a/apps/daren_detail/models.py +++ b/apps/daren_detail/models.py @@ -132,6 +132,7 @@ class CreatorProfile(models.Model): ('other', '其他平台'), ] profile = models.CharField(max_length=20, choices=PROFILE_CHOICES, default='tiktok', verbose_name="达人平台") + platform_url = models.URLField(max_length=500, blank=True, null=True, verbose_name="平台链接") # 新增hashtag和trend字段 hashtags = models.TextField(blank=True, null=True, verbose_name="标签", help_text="以#分隔的标签,例如:#fashion#beauty#lifestyle") diff --git a/apps/daren_detail/views.py b/apps/daren_detail/views.py index be2b123..a4e1c2b 100644 --- a/apps/daren_detail/views.py +++ b/apps/daren_detail/views.py @@ -478,7 +478,8 @@ def get_creator_detail(request, creator_id): "email": creator.email, "social_accounts": { "instagram": creator.instagram, # 示例数据,实际应从数据库获取 - "tiktok": creator.tiktok_link # 示例链接 + "tiktok": creator.tiktok_link, # 示例链接 + "platform_url": creator.platform_url # 添加平台链接 }, "location": creator.location, "live_schedule": creator.live_schedule @@ -2140,6 +2141,8 @@ def get_public_creators(request): "category": creator.category, "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, + "platform": creator.profile if hasattr(creator, 'profile') else 'tiktok', # 添加平台信息 + "platform_url": creator.platform_url if hasattr(creator, 'platform_url') else None, # 添加平台链接 "followers": followers_formatted, "gmv": gmv_formatted, "avg_video_views": avg_views_formatted, @@ -2600,6 +2603,8 @@ def get_private_pool_creators(request, pool_id=None): "category": creator.category, "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, + "platform": creator.profile, # 添加平台信息 + "platform_url": creator.platform_url, # 添加平台链接 "followers": followers_formatted, "gmv": gmv_formatted, "avg_video_views": avg_views_formatted, @@ -3154,6 +3159,7 @@ def filter_public_creators(request): "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, "platform": creator.profile, # 添加平台信息 + "platform_url": creator.platform_url, # 添加平台链接 "followers": followers_formatted, "gmv": gmv_formatted, "avg_video_views": avg_views_formatted, @@ -3484,6 +3490,7 @@ def filter_private_pool_creators(request): "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, "platform": creator.profile, # 添加平台信息 + "platform_url": creator.platform_url, # 添加平台链接 "followers": followers_formatted, "gmv": gmv_formatted, "avg_video_views": avg_views_formatted, @@ -3764,6 +3771,7 @@ def search_creators(request): "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, "platform": creator.profile if hasattr(creator, 'profile') else 'tiktok', + "platform_url": creator.platform_url if hasattr(creator, 'platform_url') else None, "followers": followers_formatted, "gmv": gmv_formatted, "avg_video_views": avg_views_formatted, @@ -4009,6 +4017,7 @@ def search_private_creators(request): "e_commerce_level": e_commerce_level_formatted, "exposure_level": creator.exposure_level, "platform": creator.profile if hasattr(creator, 'profile') else 'tiktok', + "platform_url": creator.platform_url if hasattr(creator, 'platform_url') else None, "followers": followers_formatted, "gmv": gmv_formatted, "avg_video_views": avg_views_formatted,