# Welcome to django-parler’s documentation!

> “Easily translate “cheese omelet” into “omelette du fromage”.

django-parler provides Django model translations without nasty hacks.

Features:

- Nice admin integration.

- Access translated attributes like regular attributes.

- Automatic fallback to the other default languages.

- Separate table for translated fields, compatible with django-hvad.

- Plays nice with others, compatible with django-polymorphic, django-mptt and such:

> - No ORM query hacks.

> - Easy to combine with custom Manager or QuerySet classes.

> - Easy to construct the translations model manually when needed.

## Getting started

- Quick start guide
  - Installing django-parler
  - A brief overview
  - Configuration
- Configuration options
  - PARLER_DEFAULT_LANGUAGE_CODE
  - PARLER_LANGUAGES
  - PARLER_ENABLE_CACHING
  - PARLER_CACHE_PREFIX
  - PARLER_SHOW_EXCLUDED_LANGUAGE_TABS
  - PARLER_DEFAULT_ACTIVATE
- Template tags
  - Getting the translated URL
  - Changing the object language
  - Thread safety notes
- Performance guidelines
  - Caching
  - Query prefetching

## In depth topics

- Advanced usage patterns
  - Translations without fallback languages
  - Using translated slugs in views
  - Making existing fields translatable
  - Adding translated fields to an existing model
  - Integration with django-mptt
  - Integration with django-polymorphic
  - Integration with django-guardian
  - Integration with django-rest-framework
  - Multi-site support
  - Disabling caching
  - Parler on more sites with same cache
  - Constructing the translations model manually
  - Customizing language settings
- Django compatibility
  - Using multiple `filter()` calls
  - The `ordering` meta field
  - Using `search_fields` in the admin
  - Using `prepopulated_fields` in the admin
- Background
  - A brief history
  - Presentations
  - Database schema
  - Package naming

## API documentation

- API documentation
  - parler package
  - parler.admin module
  - parler.cache module
  - parler.fields module
  - parler.forms module
  - parler.managers module
  - parler.models module
  - parler.signals module
  - parler.utils package
  - parler.views module
  - parler.widgets module
- Changelog
  - Changes in 2.3 (2021-11-18)
  - Changes in 2.2.1 (2021-10-18)
  - Changes in 2.2 (2020-09-06)
  - Changes in 2.1 (2020-08-05)
  - Changes in 2.0.1 (2020-01-02)
  - Changes in 2.0 (2019-07-26)
  - Changes in 1.9.2 (2018-02-12)
  - Changes in 1.9.1 (2017-12-06)
  - Changes in 1.9 (2017-12-04)
  - Changes in 1.8.1 (2017-11-20)
  - Changes in 1.8 (2017-06-20)
  - Changes in 1.7 (2016-11-29)
  - Changes in 1.6.5 (2016-07-11)
  - Changes in 1.6.4 (2016-06-14)
  - Changes in 1.6.3 (2016-05-05)
  - Changes in 1.6.2 (2016-03-08)
  - Changes in version 1.6.1 (2016-02-11)
  - Changes in version 1.6 (2015-12-29)
  - Changes in version 1.5.1 (2015-10-01)
  - Changes in version 1.5 (2015-06-30)
  - Changes in version 1.4 (2015-04-13)
  - Changes in version 1.3 (2015-03-13)
  - Changes in version 1.2.1 (2014-10-31)
  - Changes in version 1.2 (2014-10-30)
  - Changes in version 1.1.1 (2014-10-14)
  - Changes in version 1.1 (2014-09-29)
  - Changes in version 1.0 (2014-07-07)
  - Changes in version 0.9.4 (beta)
  - Changes in version 0.9.3 (beta)
  - Changes in version 0.9.2 (beta)
  - Changes in version 0.9.1 (beta)
  - Changes in version 0.9 (beta)

# Roadmap

The following features are on the radar for future releases:

- Multi-level model inheritance support

- Improve query usage, e.g. by adding “Prefetch” objects.

Please contribute your improvements or work on these area’s!

# Indices and tables

- Index

- Module Index

- Search Page