У меня есть сериализатор (ModelSerializer), где мне нужно проверить поле, которое будет передано методу validate.
CompanySerializer
class CompanySerializer(serializers.ModelSerializer):
def validate_vat_number(self, vat_no):
vatlayer = "http://apilayer.net/api/validate?access_key={api_key}&vat_number={VAT_NUMBER}".format(api_key=settings.VATLAYER, VAT_NUMBER=vat_no)
vatlayer = json.loads(vatlayer)
if vatlayer['valid'] is not True:
raise serializers.ValidationError("VAT number not valid")
return vat_no
class Meta:
model = Company
fields = ('profile', 'name', 'address', 'currency', 'id_number', 'vat_number', 'vat_company_name', 'email', 'phone', 'fixed_phone')
Мой вопрос есть, вызывается ли метод validate_vat_number при запуске метода create, и если да, то как мне передать параметр vat_no? Если нет, где я могу вызвать этот метод? И возможно ли это сделать без перезаписи метода create?
Мое представление
class CompanyAPI(viewsets.ModelViewSet):
queryset = Company.objects.all()
serializer_class = CompanySerializer
Было бы идеально, если бы я мог как-то проверить без использования @action в представлении, так как это создает другую конечную точку. Моя цель - проверить и сохранить объект одним почтовым запросом