Django modelSerializer form.is_valid() истинен, когда значения пусты

Когда я выполняю form.is_valid(), возвращается true, за исключением branches_count и employee_count. Когда я запускаю form.save(), он возвращает ключевые ошибки

serializers.py

class GeneralInformationFormSerializer(serializers.ModelSerializer):

    class Meta:
        model = Business
        fields = ['location', 'date_founded', 'employee_count', 'branches_count', 'business_premises']

    def update(self, instance, validated_data):
        return update_business_details(instance, validated_data)

Это models.py

class Business(SyncedBusinessModel):
    location = models.TextField(blank=True)
    employee_count = models.IntegerField(blank=True, null=True)
    branches_count = models.IntegerField(blank=True, null=True)
    business_premises = models.CharField(max_length=255, blank=True, choices=BUSINESS_PREMISES_CHOICES)
    date_founded = models.DateField(blank=True, null=True)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name_plural = "businesses"

Мои поля модели имели значение blank=True, что означало, что валидация будет проходить для пустых значений. Поскольку я не хотел делать поля модели обязательными, но хотел, чтобы этот конкретный сериализатор требовал их для другого приложения, я добавил поле extra_kwargs в сериализатор, и это решило проблему

class GeneralInformationFormSerializer(serializers.ModelSerializer):

    class Meta:
        model = Business
        fields = ['location', 'date_founded', 'employee_count', 'branches_count', 'business_premises']
        # Ensure these values are availed and empty strings
        extra_kwargs = {
            'location': {'required': True, 'allow_blank': False},
            'date_founded': {'required': True},
            'business_premises': {'required': True, 'allow_blank': False}
        }
Вернуться на верх