✨ Feat: [#81] keyword, description 및 object 정보 추가
This commit is contained in:
@@ -16,6 +16,10 @@ class Page(me.EmbeddedDocument):
|
||||
|
||||
class Code(me.Document):
|
||||
pages = me.ListField(me.EmbeddedDocumentField(Page))
|
||||
keyword = me.ListField(me.StringField(max_length=50), default=list)
|
||||
description = me.StringField(default='', blank=True)
|
||||
object_type = me.StringField(choices=("portfolio", "project"))
|
||||
object_id = me.StringField()
|
||||
created_at = me.DateTimeField(default=timezone.now)
|
||||
updated_at = me.DateTimeField(default=timezone.now)
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ class PageSerializer(serializers.Serializer):
|
||||
class CodeSerializer(serializers.Serializer):
|
||||
id = serializers.SerializerMethodField()
|
||||
pages = PageSerializer(many=True, required=False)
|
||||
keyword = serializers.ListField(child=serializers.CharField(), required=False, allow_empty=True)
|
||||
description = serializers.CharField(allow_blank=True, required=False)
|
||||
created_at = serializers.SerializerMethodField()
|
||||
updated_at = serializers.SerializerMethodField()
|
||||
|
||||
@@ -34,6 +36,9 @@ class CodeSerializer(serializers.Serializer):
|
||||
return str(obj.id)
|
||||
|
||||
def create(self, validated_data):
|
||||
request = self.context['request']
|
||||
validated_data['object_type'] = request.query_params.get('type')
|
||||
validated_data['object_id'] = request.query_params.get('id')
|
||||
pages_data = validated_data.pop('pages')
|
||||
pages = [
|
||||
Page(
|
||||
@@ -63,5 +68,10 @@ class CodeSerializer(serializers.Serializer):
|
||||
)
|
||||
)
|
||||
|
||||
if 'keyword' in validated_data:
|
||||
instance.keyword = validated_data['keyword']
|
||||
if 'description' in validated_data:
|
||||
instance.description = validated_data['description']
|
||||
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
@@ -59,7 +59,7 @@ class NoCodeToolAPIView(APIView):
|
||||
|
||||
obj_serializer = NocodetoolObjectMapService.mapping_model_serializer(related_type)
|
||||
|
||||
serializer = CodeSerializer(data=request.data)
|
||||
serializer = CodeSerializer(data=request.data, context={'request': request})
|
||||
if serializer.is_valid():
|
||||
code = serializer.save()
|
||||
obj.code_id = str(code.id)
|
||||
@@ -97,7 +97,7 @@ class NoCodeToolAPIView(APIView):
|
||||
thumbnail_file = data.pop("thumbnail", None)
|
||||
|
||||
obj_serializer = NocodetoolObjectMapService.mapping_model_serializer(related_type)
|
||||
serializer = CodeSerializer(code, data=data, partial=True)
|
||||
serializer = CodeSerializer(code, data=data, partial=True, context={'request': request})
|
||||
if serializer.is_valid():
|
||||
updated_code = serializer.save()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user