MrDoc/app_api/serializers_app.py

112 lines
2.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# coding:utf-8
# @文件: serializers_app.py
# @创建者:州的先生
# #日期2020/5/11
# 博客地址zmister.com
from rest_framework import serializers
from rest_framework.serializers import ModelSerializer,SerializerMethodField
from app_doc.models import *
# 用户序列化器
class UserSerializer(ModelSerializer):
class Meta:
model = User
fields = (
'id', 'last_login', 'is_superuser', 'username', 'email', 'date_joined', 'is_active', 'first_name'
)
# 文集序列化器
class ProjectSerializer(ModelSerializer):
create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M')
class Meta:
model = Project
fields = ('__all__')
# 协作文集序列化器
class ProjectCollaSerializer(ModelSerializer):
project_id = serializers.SerializerMethodField(label="文集ID")
project_name = serializers.SerializerMethodField(label="文集名称")
username = serializers.SerializerMethodField(label='文集创建人')
top_doc = serializers.SerializerMethodField(label="上级")
class Meta:
model = ProjectCollaborator
fields = ('__all__')
def get_project_name(self,obj):
return obj.project.name
def get_project_id(self,obj):
return obj.project.id
def get_username(self,obj):
username = obj.project.create_user.username
return username
def get_top_doc(self,obj):
return 0
# 文档序列化器
class DocSerializer(ModelSerializer):
project_name = SerializerMethodField(label="所属文集")
modify_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M:%S')
class Meta:
model = Doc
fields = ('__all__')
# 返回文档的所属文集
def get_project_name(self,obj):
pro_name = Project.objects.get(id=obj.top_doc).name
return pro_name
# 文档历史序列化器
class DocHistorySerializer(ModelSerializer):
username = serializers.SerializerMethodField(label="用户名")
class Meta:
model = DocHistory
fields = ('__all__')
def get_username(self,obj):
return obj.create_user.username
# 文档模板序列化器
class DocTempSerializer(ModelSerializer):
class Meta:
model = DocTemp
fields = ('__all__')
# 图片序列化器
class ImageSerializer(ModelSerializer):
username = serializers.SerializerMethodField(label="用户名")
class Meta:
model = Image
fields = ('__all__')
def get_username(self,obj):
return obj.user.username
# 图片分组序列化器
class ImageGroupSerializer(ModelSerializer):
class Meta:
model = ImageGroup
fields = ('__all__')
# 附件序列化器
class AttachmentSerializer(ModelSerializer):
username = serializers.SerializerMethodField(label="用户名")
class Meta:
model = Attachment
fields = ('__all__')
def get_username(self,obj):
return obj.user.username