| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from rest_framework import serializers, status
- from rest_framework.exceptions import ValidationError
- from apps.patient.models import Patient
- class PatientSerializer(serializers.ModelSerializer):
- class Meta:
- model = Patient
- fields = '__all__'
- extra_kwargs = {
- 'owners': {'required': False}
- }
- def create(self, validated_data):
- user = self.context['request'].user
- name = validated_data['name']
- exists = Patient.objects.filter(owners=user).filter(name=name)
- if len(exists) > 0:
- raise ValidationError(detail="Patient with name "+name+" already exists", code=status.HTTP_400_BAD_REQUEST)
- patient = Patient.objects.create(
- name=validated_data['name']
- )
- patient.gender = validated_data['gender']
- patient.born = validated_data['born']
- patient.owners.set([user])
- patient.save()
- return patient
- # def update(self, instance, validated_data):
- # if isinstance(instance, Patient):
- # if 'name' in validated_data:
- # instance.name = validated_data['name']
- # if 'owners' in validated_data:
- # result = instance.owners.all()
- # list_result = [entry for entry in result]
- # list_result.append(validated_data['owners'])
- # instance.owners.set(list_result)
- # # list_owner = instance.owners.all()
- # # list_owner.union(validated_data['owners'])
- # # listOwners.add(validated_data['owners'])
- # # instance.owners.set(instance.owners.all() | validated_data['owners']) #.add(validated_data['owners'])
- # instance.save()
- # return instance
- # # patient = (Patient)instance
- # # user = self.context['request'].user
- # # if user in instance.owners.all():
- # # instance.name = validated_data['name']
- # # instance.save()
- # # return instance
- # # else:
- # # raise ValidationError(detail="forbidden", code=status.HTTP_403_FORBIDDEN)
- # raise ValidationError(detail="incorrect input data", code=status.HTTP_400_BAD_REQUEST)
|