serializers.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. # coding=utf-8
  2. import datetime
  3. from rest_framework import serializers
  4. from django.conf import settings
  5. from apps.agent.models import GeneralAgent,Agent,Store
  6. from utils.booleancharfield import BooleanCharField
  7. from utils.exceptions import CustomError
  8. class GeneralAgentSerializer(serializers.ModelSerializer):
  9. create_user_text = serializers.CharField(source='create_user.name', read_only=True)
  10. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  11. read_only=True)
  12. class Meta:
  13. model = GeneralAgent
  14. fields = '__all__'
  15. def create(self, validated_data):
  16. validated_data['create_user'] = self.context['request'].user
  17. instance = super(GeneralAgentSerializer, self).create(validated_data)
  18. return instance
  19. class AgentSerializer(serializers.ModelSerializer):
  20. general_agent_text = serializers.CharField(source='general_agent.name', read_only=True)
  21. create_user_text = serializers.CharField(source='create_user.name', read_only=True)
  22. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  23. read_only=True)
  24. class Meta:
  25. model = Agent
  26. fields = '__all__'
  27. def create(self, validated_data):
  28. validated_data['create_user'] = self.context['request'].user
  29. validated_data['general_agent'] = self.context['request'].user.general_agent
  30. instance = super(AgentSerializer, self).create(validated_data)
  31. return instance
  32. class GeneralAgentComboboxSerializer(serializers.ModelSerializer):
  33. class Meta:
  34. model = GeneralAgent
  35. fields = ('id', 'name',)
  36. class AgentComboboxSerializer(serializers.ModelSerializer):
  37. class Meta:
  38. model = Agent
  39. fields = ('id', 'name', 'general_agent_id')
  40. class StoreComboboxSerializer(serializers.ModelSerializer):
  41. class Meta:
  42. model = Store
  43. fields = ('id', 'name', 'agent_id')
  44. class StoreSerializer(serializers.ModelSerializer):
  45. create_user_text = serializers.CharField(source='create_user.name', read_only=True)
  46. status_text = serializers.CharField(source='get_status_display', read_only=True)
  47. check_user_text = serializers.CharField(source='check_user.name', read_only=True)
  48. agent_text = serializers.CharField(source='agent.name', read_only=True)
  49. enable_text = BooleanCharField(source='enable', read_only=True)
  50. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  51. read_only=True)
  52. check_time_f = serializers.DateTimeField(source='check_time', format=settings.SHORT_DATETIME_FORMAT, read_only=True)
  53. class Meta:
  54. model = Store
  55. fields = '__all__'
  56. def create(self, validated_data):
  57. agent = self.context['request'].user.agent
  58. if not agent:
  59. raise CustomError('当前账号未绑定代理商,禁止添加门店!')
  60. validated_data['create_user'] = self.context['request'].user
  61. validated_data['agent'] = self.context['request'].user.agent
  62. validated_data['end_date'] = (datetime.datetime.now() + datetime.timedelta(days=365)).strftime('%Y-%m-%d')
  63. instance = super(StoreSerializer, self).create(validated_data)
  64. return instance