fix(projects): add client's name to the project's response to display in frontend

This commit is contained in:
2026-03-15 01:54:22 +08:00
parent c548b7c30c
commit 0289a15089
2 changed files with 19 additions and 5 deletions

View File

@@ -24,6 +24,16 @@ class ProjectSerializer(BaseModelSerializer):
)
read_only_fields = fields
def to_representation(self, instance):
representation = super().to_representation(instance)
if instance.client:
representation['client'] = {
'id': instance.client.id,
'name': instance.client.name
}
return representation
class ProjectCreateSerializer(serializers.Serializer):
"""
@@ -31,9 +41,9 @@ class ProjectCreateSerializer(serializers.Serializer):
We use a standard Serializer here to decouple validation from the model,
keeping business logic in the service layer.
"""
workspace_id = serializers.UUIDField()
workspace = serializers.UUIDField()
name = serializers.CharField(max_length=255)
client_id = serializers.UUIDField(required=False, allow_null=True)
client = serializers.UUIDField(required=False, allow_null=True)
description = serializers.CharField(required=False, allow_blank=True, default="")
color = serializers.CharField(max_length=7, required=False, allow_blank=True, default="")
@@ -43,7 +53,7 @@ class ProjectUpdateSerializer(serializers.Serializer):
Serializer for validating input data during project updates.
"""
name = serializers.CharField(max_length=255, required=False)
client_id = serializers.UUIDField(required=False, allow_null=True)
clien = serializers.UUIDField(required=False, allow_null=True)
description = serializers.CharField(required=False, allow_blank=True)
color = serializers.CharField(max_length=7, required=False, allow_blank=True)
is_archived = serializers.BooleanField(required=False)