serializers.py 1014 B

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