✨ Feat: [#81] keyword, description 및 object 정보 추가
This commit is contained in:
@@ -16,6 +16,10 @@ class Page(me.EmbeddedDocument):
|
|||||||
|
|
||||||
class Code(me.Document):
|
class Code(me.Document):
|
||||||
pages = me.ListField(me.EmbeddedDocumentField(Page))
|
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)
|
created_at = me.DateTimeField(default=timezone.now)
|
||||||
updated_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):
|
class CodeSerializer(serializers.Serializer):
|
||||||
id = serializers.SerializerMethodField()
|
id = serializers.SerializerMethodField()
|
||||||
pages = PageSerializer(many=True, required=False)
|
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()
|
created_at = serializers.SerializerMethodField()
|
||||||
updated_at = serializers.SerializerMethodField()
|
updated_at = serializers.SerializerMethodField()
|
||||||
|
|
||||||
@@ -34,6 +36,9 @@ class CodeSerializer(serializers.Serializer):
|
|||||||
return str(obj.id)
|
return str(obj.id)
|
||||||
|
|
||||||
def create(self, validated_data):
|
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_data = validated_data.pop('pages')
|
||||||
pages = [
|
pages = [
|
||||||
Page(
|
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()
|
instance.save()
|
||||||
return instance
|
return instance
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class NoCodeToolAPIView(APIView):
|
|||||||
|
|
||||||
obj_serializer = NocodetoolObjectMapService.mapping_model_serializer(related_type)
|
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():
|
if serializer.is_valid():
|
||||||
code = serializer.save()
|
code = serializer.save()
|
||||||
obj.code_id = str(code.id)
|
obj.code_id = str(code.id)
|
||||||
@@ -97,7 +97,7 @@ class NoCodeToolAPIView(APIView):
|
|||||||
thumbnail_file = data.pop("thumbnail", None)
|
thumbnail_file = data.pop("thumbnail", None)
|
||||||
|
|
||||||
obj_serializer = NocodetoolObjectMapService.mapping_model_serializer(related_type)
|
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():
|
if serializer.is_valid():
|
||||||
updated_code = serializer.save()
|
updated_code = serializer.save()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user