优化全能创作
Deploy dev / deploy (push) Successful in 44s

This commit is contained in:
Azmat@qq.com
2026-09-29 18:11:24 +08:00
parent c687ec4bbd
commit fa94051381
14 changed files with 669 additions and 183 deletions
+8 -6
View File
@@ -1,6 +1,6 @@
from rest_framework import serializers
from .creation_presets import PLOT_TWIST_PRESET
from .creation_presets import is_plot_twist_preset
from .models import (
AITask,
CreationConversation,
@@ -248,18 +248,20 @@ class CreationConversationSerializer(serializers.ModelSerializer):
return progress
def create(self, validated_data):
# 剧情反转带货的新会话直接以完整短剧的 60 秒开场,不再弹故事深度选择。
# 旧客户端仍传「智能时长」时也要在服务端落成确定参数。
if validated_data.get("mode") == CreationConversation.Mode.VIDEO and validated_data.get("preset") == PLOT_TWIST_PRESET:
# 短剧带货现阶段固定为完整的 60 秒短剧,旧客户端传任何时长也不能覆盖。
if validated_data.get("mode") == CreationConversation.Mode.VIDEO and is_plot_twist_preset(validated_data.get("preset")):
params = dict(validated_data.get("params") or {})
if not str(params.get("duration") or "").strip() or str(params.get("duration")).strip() == "智能时长":
params["duration"] = "60 秒"
params["duration"] = "60 秒"
validated_data["params"] = params
return super().create(validated_data)
def update(self, instance, validated_data):
# mode 定死:允许传但忽略,避免前端误改后顶栏参数与已生成内容对不上
validated_data.pop("mode", None)
if instance.mode == CreationConversation.Mode.VIDEO and is_plot_twist_preset(validated_data.get("preset", instance.preset)):
params = dict(validated_data.get("params", instance.params) or {})
params["duration"] = "60 秒"
validated_data["params"] = params
return super().update(instance, validated_data)