serializers.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. # coding=utf-8
  2. from django.conf import settings
  3. from rest_framework import serializers
  4. from apps.activity.models import Activity, ActivityDetails
  5. class ActivitySerializer(serializers.ModelSerializer):
  6. pic = serializers.SerializerMethodField()
  7. describe = serializers.SerializerMethodField()
  8. details = serializers.SerializerMethodField()
  9. class Meta:
  10. model = Activity
  11. fields = ('branch_address', 'branch_name', 'branch_tel', 'describe', 'title', 'pic', 'details',)
  12. def get_details(self, obj):
  13. rows = ActivityDetails.objects.filter(main=obj, delete=False).values('name', 'amount', 'id')
  14. data = []
  15. for row in rows:
  16. item = {
  17. 'id': row['id'],
  18. 'name': row['name'],
  19. 'amount': row['amount'],
  20. }
  21. data.append(item)
  22. return data
  23. def get_pic(self, obj):
  24. if obj.pic:
  25. return settings.MEDIA_URL + obj.pic
  26. return ''
  27. def get_describe(self, obj):
  28. return ''