class todoGroupSimpleSerializer(serializers.ModelSerializer): todoGroup_id = serializers.CharField(source="id", read_only=True) subject_id = serializers.UUIDField(read_only=True) time = serializers.IntegerField(read_only=True) progress = serializers.CharField(read_only=True) leader = userSimpleInfoSerializer(read_only=True) members = userSimpleInfoSerializer(many=True, read_only=True) def __init__(self, subject, writer, *args, **kwargs): super(todoGroupSimpleSerializer, self).__init__(*args, **kwargs) self.subject = subject self.writer = writer class Meta: model = TodoGroup fields = ( "todoGroup_id", "subject_id", "time", "title", "progress", "leader", "members", ) def create(self, validated_data): todoGroup = TodoGroup.objects.create( title=validated_data["title"], time=self.subject.time, subject_id=self.subject, leader=self.subject.writer, # subject를 만든사람 즉, 그룹장 ) todoGroup.members.add(self.writer) todoGroup.save() return todoGroup
class SubjectBaseSerializer(serializers.ModelSerializer): group_id = serializers.UUIDField(read_only=True) time = serializers.IntegerField(read_only=True) writer = userSimpleInfoSerializer(read_only=True) def __init__(self, group, leader, *args, **kwargs): super(SubjectBaseSerializer, self).__init__(*args, **kwargs) self.group = group self.leader = leader class Meta: model = Subject fields = ( "group_id", "time", "title", "description", "writer", ) def create(self, validated_data): subject = Subject.objects.create( title=validated_data["title"], description=validated_data["description"], time=self.group.time, group_id=self.group, writer=self.leader, ) return subject
class myGroupInfoSerializer(serializers.ModelSerializer): subjectList = SubjectSimpleSerializer(source="group", many=True) members = userSimpleInfoSerializer(many=True) attends = userSimpleInfoSerializer(many=True) class Meta: model = Group fields = ( "id", "title", "category", "description", "subjectList", "members", "attends", )
class TodoGroupSimpleSerializer(serializers.ModelSerializer): todoGroup_id = serializers.CharField(source="id") todoList = todoAllSerializer(source="todo_group", many=True) leader = userSimpleInfoSerializer() members = userSimpleInfoSerializer(many=True) start = serializers.DateTimeField(format="%Y-%m-%d", read_only=True) end = serializers.DateTimeField(format="%Y-%m-%d", read_only=True) class Meta: model = TodoGroup fields = ( "todoGroup_id", "subject_id", "title", "progress", "time", "leader", "members", "todoList", "start", "end", )
class SubjectSimpleSerializer(serializers.ModelSerializer): todoGroups = TodoGroupSimpleSerializer(source="subject", many=True) subject_id = serializers.CharField(source="id") writer = userSimpleInfoSerializer() isTodo = serializers.BooleanField(default=False, read_only=True) class Meta: model = Subject fields = ( "subject_id", "time", "title", "writer", "description", "todoGroups", "isTodo", )
class todoAllSerializer(serializers.ModelSerializer): todo_id = serializers.CharField(source="id") writer = userSimpleInfoSerializer() start = serializers.DateTimeField(format="%Y-%m-%d", read_only=True) end = serializers.DateTimeField(format="%Y-%m-%d", read_only=True) class Meta: model = Todo fields = ( "todo_id", "todoGroup_id", "time", "writer", "progress", "created", "start", "end", )
class groupSubjectsSerializer(serializers.ModelSerializer): writer = userSimpleInfoSerializer() class Meta: model = Subject fields = ("id", "time", "title", "writer")