Fakultas Ilmu Komputer UI

serializers.py 1.01 KB
Newer Older
1
2
3
4
5
6
7
from rest_framework import serializers
from django.utils import timezone
from acara_donor.models import AcaraDonor


class AcaraDonorSerializer(serializers.ModelSerializer):
    def validate(self, data):
8
9
10
11
        queryset = AcaraDonor.objects.filter(
            nama_institusi=data['nama_institusi'],
            alamat_lokasi_donor=data['alamat_lokasi_donor'],
            waktu_mulai=data['waktu_mulai'])
12
        if queryset.exists():
13
14
15
16
17
18
19
20
21
22
23
            raise serializers.ValidationError(
                "Acara donor darah ini sudah diajukan.")

        if data['waktu_mulai'] < timezone.now():
            raise serializers.ValidationError(
                "Pelaksanaan acara donor darah tidak boleh di masa lalu.")

        if data['waktu_berakhir'] < data['waktu_mulai']:
            raise serializers.ValidationError(
                "Jam pelaksanaan acara donor darah tidak valid.")

24
25
26
27
        return data

    class Meta:
        model = AcaraDonor
28
        exclude = ["user", ]
29
        extra_kwargs = {'foto_lokasi': {'required': False}}