This commit is contained in:
2026-08-06 08:36:01 -06:00
parent 3a99c6a890
commit 5586c9b573
3 changed files with 4 additions and 47 deletions

View File

@@ -4,23 +4,4 @@ from utils.api import serializers
class SetReactionSerializer(serializers.Serializer):
problem_id = serializers.IntegerField()
type = serializers.ChoiceField(choices=ReactionType.choices, required=False)
types = serializers.ListField(
child=serializers.ChoiceField(choices=ReactionType.choices),
required=False,
allow_empty=False,
)
def validate(self, attrs):
reaction_type = attrs.get("type")
legacy_types = list(dict.fromkeys(attrs.get("types", [])))
if len(legacy_types) > 1:
raise serializers.ValidationError({"types": "只能选择一个评价"})
if reaction_type is None and not legacy_types:
raise serializers.ValidationError({"type": "This field is required."})
if reaction_type is not None and legacy_types and reaction_type != legacy_types[0]:
raise serializers.ValidationError({"types": "新旧评价字段不一致"})
attrs["type"] = reaction_type or legacy_types[0]
return attrs
type = serializers.ChoiceField(choices=ReactionType.choices)