added validation to Company serializer
This commit is contained in:
parent
0d9d45bcc5
commit
012d2dcb23
|
|
@ -1,20 +1,21 @@
|
|||
"""Establishment serializers."""
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from phonenumber_field.phonenumber import to_python as str_to_phonenumber
|
||||
from rest_framework import serializers
|
||||
|
||||
from phonenumber_field.modelfields import PhoneNumberField
|
||||
from comment import models as comment_models
|
||||
from comment.serializers import common as comment_serializers
|
||||
from establishment import models
|
||||
from location.serializers import AddressBaseSerializer, CitySerializer, AddressDetailSerializer, CityShortSerializer
|
||||
from location.serializers import AddressBaseSerializer, CitySerializer, AddressDetailSerializer, \
|
||||
CityShortSerializer
|
||||
from main.serializers import AwardSerializer, CurrencySerializer
|
||||
from review.serializers import ReviewShortSerializer
|
||||
from tag.serializers import TagBaseSerializer
|
||||
from timetable.serialziers import ScheduleRUDSerializer
|
||||
from utils import exceptions as utils_exceptions
|
||||
from utils.serializers import ImageBaseSerializer
|
||||
from utils.serializers import (ProjectModelSerializer, TranslatedField,
|
||||
FavoritesCreateSerializer)
|
||||
from review.serializers import ReviewShortSerializer
|
||||
from utils.serializers import ImageBaseSerializer
|
||||
|
||||
|
||||
class ContactPhonesSerializer(serializers.ModelSerializer):
|
||||
|
|
@ -453,7 +454,23 @@ class CompanyBaseSerializer(serializers.ModelSerializer):
|
|||
}
|
||||
|
||||
def get_phone_list(self, instance):
|
||||
"""Return list of phone numbers."""
|
||||
return instance.phones
|
||||
|
||||
def get_fax_list(self, instance):
|
||||
"""Return list of fax numbers."""
|
||||
return instance.faxes
|
||||
|
||||
def validate(self, attrs):
|
||||
"""Overridden validate method"""
|
||||
phones = [str_to_phonenumber(phone).as_national for phone in attrs.get('phones')]
|
||||
faxes = [str_to_phonenumber(fax).as_national for fax in attrs.get('faxes')]
|
||||
|
||||
if faxes:
|
||||
if models.Company.objects.filter(faxes__overlap=faxes).exists():
|
||||
raise serializers.ValidationError({'detail': _('Fax is already reserved.')})
|
||||
|
||||
if phones:
|
||||
if models.Company.objects.filter(phones__overlap=phones).exists():
|
||||
raise serializers.ValidationError({'detail': _('Phones is already reserved.')})
|
||||
return attrs
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user