serializers.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 Agent,Store
  6. from utils.booleancharfield import BooleanCharField
  7. class AgentSerializer(serializers.ModelSerializer):
  8. create_user_text = serializers.CharField(source='create_user.name', read_only=True)
  9. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  10. read_only=True)
  11. class Meta:
  12. model = Agent
  13. fields = '__all__'
  14. def create(self, validated_data):
  15. validated_data['create_user'] = self.context['request'].user
  16. instance = super(AgentSerializer, self).create(validated_data)
  17. return instance
  18. class AgentComboboxSerializer(serializers.ModelSerializer):
  19. class Meta:
  20. model = Agent
  21. fields = ('id', 'name',)
  22. class StoreComboboxSerializer(serializers.ModelSerializer):
  23. class Meta:
  24. model = Store
  25. fields = ('id', 'name',)
  26. class StoreSerializer(serializers.ModelSerializer):
  27. create_user_text = serializers.CharField(source='create_user.name', read_only=True)
  28. status_text = serializers.CharField(source='get_status_display', read_only=True)
  29. check_user_text = serializers.CharField(source='check_user.name', read_only=True)
  30. agent_text = serializers.CharField(source='agent.name', read_only=True)
  31. enable_text = BooleanCharField(source='enable', read_only=True)
  32. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  33. read_only=True)
  34. check_time_f = serializers.DateTimeField(source='check_time', format=settings.SHORT_DATETIME_FORMAT, read_only=True)
  35. class Meta:
  36. model = Store
  37. fields = '__all__'
  38. def create(self, validated_data):
  39. validated_data['create_user'] = self.context['request'].user
  40. validated_data['agent'] = self.context['request'].user.agent
  41. validated_data['end_date'] = (datetime.datetime.now() + datetime.timedelta(days=365)).strftime('%Y-%m-%d')
  42. instance = super(StoreSerializer, self).create(validated_data)
  43. return instance