new
This commit is contained in:
@@ -4,11 +4,30 @@ from shop.serializers import WeChatUserSerializer, ESP32ConfigSerializer, Servic
|
||||
|
||||
class ActivitySerializer(serializers.ModelSerializer):
|
||||
display_banner_url = serializers.ReadOnlyField()
|
||||
signup_form_config = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Activity
|
||||
fields = '__all__'
|
||||
|
||||
def get_signup_form_config(self, obj):
|
||||
# 1. 优先使用 JSON 配置
|
||||
if obj.signup_form_config:
|
||||
return obj.signup_form_config
|
||||
|
||||
# 2. 否则根据开关生成默认配置
|
||||
config = []
|
||||
if obj.ask_name:
|
||||
config.append({"name": "name", "label": "姓名", "type": "text", "required": True})
|
||||
if obj.ask_phone:
|
||||
config.append({"name": "phone", "label": "手机号", "type": "number", "required": True})
|
||||
if obj.ask_wechat:
|
||||
config.append({"name": "wechat", "label": "微信号", "type": "text", "required": True})
|
||||
if obj.ask_company:
|
||||
config.append({"name": "company", "label": "公司/机构", "type": "text", "required": False})
|
||||
|
||||
return config
|
||||
|
||||
class ActivitySignupSerializer(serializers.ModelSerializer):
|
||||
activity_info = ActivitySerializer(source='activity', read_only=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user