Как установить allow_null=True для всех полей ModelSerializer во фреймворке Django REST

У меня есть ModelSerializer . Я хочу установить allow_null=True для всех полей сериализатора. Но я не хочу делать это вручную, я имею в виду - я не хочу писать allow_null=True для каждого поля. Есть ли какой-нибудь короткий путь? Есть ли что-то вроде read_only_fields=() ?

Это мой сериализатор

class ProductPublicListSerializer(serializers.ModelSerializer):
    minimum_price = serializers.FloatField(source='min_product_price', allow_null=True)
    maximum_price = serializers.FloatField(source='max_product_price', allow_null=True)
    # rating = serializers.FloatField(source='productreview__rating', read_only=True)

    class Meta:
        model = Product
        fields = (
            'id', 'name', 'featured_image', 'minimum_price', 'maximum_price', 'total_review',                 'average_rating')
       read_only_fields = ('name', 'featured_image', 'minimum_price', 'total_review')

Я думаю, вы можете добиться этого, переопределив get_fields в вашем ModelSerializer классе, так:

class ProductPublicListSerializer(serializers.ModelSerializer):
    ...
    def get_fields(self):
        fields = dict(super().get_fields())
        for field_name, field_class in fields.items():
            field_class.allow_null = True
        return fields

Вернуться на верх