# What changed in django-ninja

> 14 changes in django-ninja 1 from its official release notes, upgrade guides and advisories: 1 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/pypi/django-ninja/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## django-ninja 1

### New APIs and options

- LimitOffsetPagination now supports max_limit in the decorator. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)

### Behavior and default changes

- TestClient now uses real HttpRequest objects. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)
- The upper constraint on supported Django versions is removed. (1.6.3) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0), [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.6.3)

### Tooling

- Streaming responses are generic for type checkers. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)

### Fixes and other changes

- Duplicate async authentication calls are avoided. (1.7.1) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.1)
- Percent sequences in HTTP Basic credentials are preserved. (1.7.1) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.1)
- Fixes dark mode compatibility for AI. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)
- Django 6.1 support is confirmed. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)
- Fixes handling of form fields in empty multipart request bodies. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)
- Ninja settings now support override_settings. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)
- Annotation fixes improve compatibility with Python 3.14. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)
- Throttled 429 responses now set the Retry-After header. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)
- TextField max_length is validated on request input only. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)
- Fixes the site URL used by uvicorn. (1.7.0) — [release notes](https://github.com/vitalik/django-ninja/releases/tag/v1.7.0)
