def serialize(self, request, *args, **kwargs): serialized = super(IndexView, self).serialize(request) student_set = Student.objects.filter().order_by('number') # 获取所有学生信息 student_data = StudentSerializer( # 序列化所有学生信息 student_set, many=True, context={'request': request}) appeal_set = Appeal.objects.filter().order_by( 'is_checked', '-created') # 获取在公示期内的所有申诉 appeal_data = AppealSerializer( # 序列化申诉 appeal_set, many=True, context={'request': request}) appeals = appeal_data.data for appeal in appeals: appeal['created'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(appeal['created'])) application_set = Application.objects.filter( # 获取所有申请, ).order_by('is_checked', '-created') # 按时间的倒序排序 application_data = ApplicationSerializer( # 序列化所有申请 application_set, many=True, context={'request': request}) applications = application_data.data for application in applications: application['created'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(application['created'])) activity_set = Activity.objects.filter(owner=request.user).order_by( '-created') # 获取所有当前管理员创建的活动 activity_data = ActivityForAdminSerializer( # 序列化所有所有当前管理员创建的活动 activity_set, many=True, context={'request': request}) activities = activity_data.data for activity in activities: activity['date'] = tools.Date2String_SHOW( tools.TZString2DateTime(activity['date'])) for publicity in activity['publicities']: publicity['begin'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(publicity['begin'])) publicity['end'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(publicity['end'])) serialized.update({ 'appeals': appeals, 'applications': applications, 'students': student_data.data, 'activities': activities, }) return serialized
def serialize(self, request, *args, **kwargs): publicity_id = kwargs['pk'] publicity = Publicity.objects.get(id=publicity_id) activity = publicity.activity serialized = super(ChangePublicityView, self).serialize(request) serializer = PublicityWithActivitySerializer( instance=publicity, context={'request': request}) extra_data = {} extra_data['begin'] = tools.DateTime2String_VALUE( tools.TZString2DateTime(serializer.data['begin'])) extra_data['end'] = tools.DateTime2String_VALUE( tools.TZString2DateTime(serializer.data['end'])) serialized.update({ 'activity': activity, 'serializer': serializer, 'extra_data': extra_data }) return serialized
def serialize(self, request, *args, **kwargs): activity_id = kwargs['pk'] activity = Activity.objects.get(id=activity_id) serialized = super(ManagePublicityView, self).serialize(request) publicity_set = Publicity.objects.filter( # 获取该活动的所有公示 activity=activity).order_by('-is_published', '-created') publicity_data = PublicitySerializer( # 序列化公示 publicity_set, many=True, context={'request': request}) for publicity in publicity_data.data: publicity['created'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(publicity['created'])) publicity['begin'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(publicity['begin'])) publicity['end'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(publicity['end'])) serialized.update({ 'activity': activity, 'publicities': publicity_data.data, }) return serialized
def get_extra_data(self, serializer): extra_data = {} extra_data['date'] = tools.DateTime2String_VALUE( tools.TZString2DateTime(serializer.data['date'])) return extra_data
def serialize(self, request, *args, **kwargs): serialized = super(IndexView, self).serialize(request) user = request.user publicity_set = Publicity.objects.filter( # 获取在公示期内的所有公示 is_published=True, begin__lte=timezone.now(), end__gte=timezone.now()) publicity_data = PublicitySerializer( # 序列化公示 publicity_set, many=True, context={'request': request}) publicities = publicity_data.data for publicity in publicities: publicity['begin'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(publicity['begin'])) publicity['end'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(publicity['end'])) # print(publicities) application_data = ApplicationSerializer( # 序列化当前用户的所有申请 user.applications, many=True, context={'request': request}) applications = application_data.data for application in applications: application['created'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(application['created'])) serialized.update({ 'publicities': publicities, 'applications': applications }) if hasattr(user, 'student'): # 判断当前用户是否为学生 student = user.student sua_data = SuaSerializer( # 序列化当前学生的所有公益时记录 student.suas.filter(is_valid=True), many=True, context={'request': request}) suas = sua_data.data for sua in suas: sua['activity']['date'] = tools.Date2String_SHOW( tools.TZString2Date(sua['activity']['date'])) appeal_data = AppealSerializer( # 序列化当前学生的所有申诉 student.appeals, many=True, context={'request': request}) appeals = appeal_data.data for appeal in appeals: appeal['created'] = tools.DateTime2String_SHOW( tools.TZString2DateTime(appeal['created'])) serialized.update({ 'suas': sua_data.data, 'appeals': appeal_data.data }) return serialized