serializers.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from rest_framework import serializers, status
  2. from rest_framework.exceptions import ValidationError
  3. from apps.patient.models import Patient
  4. class PatientSerializer(serializers.ModelSerializer):
  5. class Meta:
  6. model = Patient
  7. fields = '__all__'
  8. extra_kwargs = {
  9. 'owners': {'required': False}
  10. }
  11. def create(self, validated_data):
  12. user = self.context['request'].user
  13. name = validated_data['name']
  14. exists = Patient.objects.filter(owners=user).filter(name=name)
  15. if len(exists) > 0:
  16. raise ValidationError(detail="Patient with name "+name+" already exists", code=status.HTTP_400_BAD_REQUEST)
  17. patient = Patient.objects.create(
  18. name=validated_data['name']
  19. )
  20. patient.owners.set([user])
  21. patient.save()
  22. return patient
  23. # def update(self, instance, validated_data):
  24. # if isinstance(instance, Patient):
  25. # if 'name' in validated_data:
  26. # instance.name = validated_data['name']
  27. # if 'owners' in validated_data:
  28. # result = instance.owners.all()
  29. # list_result = [entry for entry in result]
  30. # list_result.append(validated_data['owners'])
  31. # instance.owners.set(list_result)
  32. # # list_owner = instance.owners.all()
  33. # # list_owner.union(validated_data['owners'])
  34. # # listOwners.add(validated_data['owners'])
  35. # # instance.owners.set(instance.owners.all() | validated_data['owners']) #.add(validated_data['owners'])
  36. # instance.save()
  37. # return instance
  38. # # patient = (Patient)instance
  39. # # user = self.context['request'].user
  40. # # if user in instance.owners.all():
  41. # # instance.name = validated_data['name']
  42. # # instance.save()
  43. # # return instance
  44. # # else:
  45. # # raise ValidationError(detail="forbidden", code=status.HTTP_403_FORBIDDEN)
  46. # raise ValidationError(detail="incorrect input data", code=status.HTTP_400_BAD_REQUEST)