serializers.py 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. # coding=utf-8
  2. from utils.exceptions import CustomError
  3. from django.utils import timezone
  4. from django.conf import settings
  5. from rest_framework import serializers
  6. from apps.activity.models import Activity
  7. class ActivitySerializer(serializers.ModelSerializer):
  8. create_user_text = serializers.CharField(source='create_user.employee.name', read_only=True)
  9. playbill_url = serializers.SerializerMethodField()
  10. cover = serializers.SerializerMethodField()
  11. status = serializers.SerializerMethodField()
  12. def get_status(self, obj):
  13. if obj.end_date >= timezone.now().date():
  14. return u'进行中'
  15. return u'已结束'
  16. def get_playbill_url(self, obj):
  17. if obj.cover:
  18. return '%s%s' % (settings.MEDIA_URL, obj.cover.picture)
  19. return ''
  20. def get_cover(self, obj):
  21. if obj.cover:
  22. return {'width': obj.cover.width, 'height': obj.cover.height, 'url': obj.cover.get_path()}
  23. return ''
  24. class Meta:
  25. model = Activity
  26. fields = '__all__'