Getting started
Guide
Every TurboDRF model needs a turbodrf() classmethod that returns a config dict:
PermissionsTurboDRF supports three permission modes.
Filtering & SearchDefine searchable fields in the turbodrf() config dict (preferred) or as a searchablefields class attribute:
PerformanceTurboDRF serves list views through a compiled path that uses Django's .values() + F() annotations instead of DRF serializers. The database returns each row as a dict, so no…
Management commandsRun Django's python manage.py check in CI and before each deploy. It imports your URLconf, which creates TurboDRFRouter() and runs all of TurboDRF's startup checks. Tenancy…
IntegrationsStatus: experimental — unit-tested with mocks; not verified against a live django-allauth installation in this codebase.
Authorization & tenancy
TurboDRF enforces row-level access control through predicates declared on each model. Every list / detail / PATCH / DELETE is filtered by the user's predicate Q. Writes are…
SecurityEndpoints require authentication unless publicaccess: True is explicitly set.
Migrating to predicatesA model's tenantfield, ownerfield and visibility scope its rows whether or not TURBODRFTENANTMODEL is set. A project that declares none of them and doesn't set…
Reference
Every TurboDRF setting in one place. Defaults shown in bold. Everything that's not strictly required is gated and off by default.
AGENTS.md (for coding agents)Instructions for AI coding agents working in projects that use TurboDRF. Follow these conventions to configure the framework correctly and avoid the security footguns.…