У меня есть эта модель в django:
product_name = models.CharField(max_length=20, blank=False, required = True)
code = models.CharField(max_length = 13, blank = False, required= True)
product_note = models.CharField(max_length = 2000, blank = True, required=False)
Для кода, который применяется в сериализаторе, есть специальный валидатор и дезинфицирующее средство. Теперь моя проблема заключается в том, что если оба поля неверны (отсутствует имя продукта и неверный код), я получаю ответ: «это поле обязательно» для названия продукта и сообщение об ошибке кода никогда не отображается. Если имя_продукта передается в соответствии с определениями его модели, отображается сообщение об ошибке кода.
Есть ли способ, как определение модели (т. Е. Обязательное) и пользовательская проверка могут быть обработаны и возвращены сразу?
from products.models import Product
from rest_framework import serializers
from validations.product_validators import valid_product_code
class NewProductSerializer(serializers.ModelSerializer):
def validate(self, data):
# validate data here
err_msg = {}
code = valid_product_code(data['code'])
if code == '':
err_msg['code']=['The entered product do not follow product code rules and could not be sanitized']
if err_msg:
raise serializers.ValidationError(err_msg)
data['code'] = code
return data
class Meta:
model = Product
fields = ('product_name', 'code','product_note')