serializers.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. # coding=utf-8
  2. import datetime
  3. from rest_framework import serializers
  4. from apps.tenant.models import Tenant
  5. from apps.tenant.employee.models import Employee
  6. from utils.exceptions import CustomError
  7. from apps.account.models import User
  8. class TenantSerializer(serializers.ModelSerializer) :
  9. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  10. status_text = serializers.CharField(source='get_status_display', read_only=True)
  11. class Meta:
  12. model = Tenant
  13. fields = '__all__'
  14. def create(self, validated_data):
  15. if Tenant.is_exist(validated_data['company_name']):
  16. raise CustomError(u'名称为[%s]的租户已存在' % validated_data['company_name'])
  17. instance = super(TenantSerializer, self).create(validated_data)
  18. instance.company_no = instance.get_no()
  19. instance.end_date = (datetime.datetime.now() + datetime.timedelta(days=30)).strftime('%Y-%m-%d')
  20. instance.save()
  21. return instance
  22. def update(self, instance, validated_data):
  23. if instance.delete:
  24. raise CustomError(u'租户[%s]已经被删除,禁止修改' % instance.company_name)
  25. if Tenant.is_exist(validated_data['company_name'], instance.id):
  26. raise CustomError(u'名称为[%s]的租户已存在' % validated_data['company_name'])
  27. instance = super(TenantSerializer, self).update(instance, validated_data)
  28. return instance