Django.fun

How to set required fields in PATCH API in Swagger UI

I'm using drf-spectacular and here's code in settings.py

SPECTACULAR_SETTINGS = {
    'TITLE': 'TITLE',
    'VERSION': '1.0.0',
    'SCHEMA_PATH_PREFIX_TRIM': True,
    'PREPROCESSING_HOOKS': ["custom.url_remover.preprocessing_filter_spec"],  
}

in serializers.py

class ChangePasswordSerilaizer(serializers.Serializer):
    current_password = serializers.CharField(write_only=True, min_length=8, required=True)
    new_password = serializers.CharField(write_only=True, min_length=8, required=True)
    confirm_new_password = serializers.CharField(write_only=True, min_length=8, required=True)

but still fields in request body are showing not required

enter image description here

change your SPECTACULAR_SETTINGS

    SPECTACULAR_SETTINGS = {
        'TITLE': 'APP NAME',
        'VERSION': '1.0.0',
        'SCHEMA_PATH_PREFIX_TRIM': True,
        'PREPROCESSING_HOOKS': ["custom.url_remover.preprocessing_filter_spec"], 
        'COMPONENT_SPLIT_PATCH': False, 
    }

by default COMPONENT_SPLIT_PATCH is true in SPECTACULAR_SETTINGS so you can simply override('COMPONENT_SPLIT_PATCH': False) it to fix this problem

Tutorials

Константы Python: Улучшение управляемости вашего кода

Современный Python: начинаем проект с pyenv и poetry

Настройка проекта Python — виртуальные среды и управление пакетами

Использование requests в Python — тайм-ауты, повторы, хуки

Понимание декораторов в Python

ProcessPoolExecutor в Python: полное руководство

map() против submit() с ProcessPoolExecutor в Python

Понимание атрибутов, словарей и слотов в Python

Полное руководство по slice в Python

Выпуск Django 4.0

Безопасное развертывание приложения Django с помощью Gunicorn, Nginx и HTTPS

Автоматический повтор невыполненных задач Celery

Django REST Framework и Elasticsearch

Докеризация Django с помощью Postgres, Gunicorn и Nginx

Асинхронные задачи с Django и Celery

Релизы безопасности Django: 3.2.4, 3.1.12 и 2.2.24

Выпуски исправлений ошибок Django: 3.2.3, 3.1.11 и 2.2.23

Эффективное использование сериализаторов Django REST Framework

Выпуски безопасности Django: 3.2.2, 3.1.10 и 2.2.22

Выпущенные релизы безопасности Django: 3.2.1, 3.1.9 и 2.2.21

View all tutorials →