django-modeltrans change log

## In development

## 0.9.0 (2025-10-13) - Support Python 3.9, 3.10, 3.11, 3.12, 3.13 and Django 4.2, 5.1, 5.2 and main (#129). - Support Django 6.0 and PostgreSQL 14, 15, 16, 17, 18, drop Python 3.9 support (#132)

## 0.8.0 (2024-07-02) - Add JSONField support (#119) refs: #118 by @jacobwegner - Add MODELTRANS_DEFAULT_LANGUAGE setting (#117) by @jacobwegner - Fix OperationalError under Django 5+ (#121) by @julianwachholz - Test using PostgreSQL 14 for django master (#122) - Drop Django 3.2 and 4.1 from the build matrix, add support for Django 5.0 and Django master, python 3.12 (#112, #105) - Fix blank fields trying to insert NULL (#110) by @julianwachholz - Fix translated form labels using current language (#108) by @julianwachholz - Update Django versions and CI link in README and documentation, remove import shims (#95) by @browniebroke

## 0.7.5 (2023-08-03) - Fix crash with limit_choices_to (#100) fixes: #94

## 0.7.4 (2023-04-03) - Add support for Django 4.2

## 0.7.3 (2022-05-25) - Revert: Use TranslationModelForm to implement ActiveLanguageMixin (#86)

## 0.7.2 (2021-10-21) - Use TranslationModelForm to implement ActiveLanguageMixin (#80) - Add support for django 4.0 (#78)

## 0.7.1 (2021-07-21)
  • Add translations for NL, DE and FR

  • Remove translation strings in example and tests

## 0.7.0 (2021-06-30)
  • Add TranslationModelForm

## 0.6.0 (2021-04-07)
  • Add support for Django==3.2

## 0.5.2 (and 0.5.1) (2021-01-12)
  • Adjust imports to remove deprecation warnings with django==3.1.* #65

## 0.5.0 (2020-11-23)
  • Add per-record fallback feature #63

## 0.4.0 (2019-11-22)
  • Drop python 2, Django 1.11 and Django 2.0 support #56

  • Add option for i18n model fields inheritance #51

  • Fix patching managers of models inheriting from an abstract models #50

## 0.3.4 (2019-01-15)
  • Fix exception on nullable i18n field #49

## 0.3.3 (2018-07-19)
  • Add instruction to remove virtual_fields=True to migration guide, fixes #45

  • Use AppConfig to compute path to app dir, fixes #46

  • Do not copy empty fields into i18n field, fixes #47

## 0.3.2 (2018-07-18)
  • Removed encoding kwarg to open() in setup.py to fix python 2.7 install.

## 0.3.1 (2018-07-16)
  • Added long_description to setup.py, no functional changes.

## 0.3.0 (2018-07-15)
  • Adopted [black](https://github.com/ambv/black) code style.

  • Removed auto-adding indexes, as it was unpredictable. You must add the GinIndex manually like described in the documentation on performance.

  • Support dict for required_languages argument to TranslationField, to allow more fine-grained mapping of field names to required languages.

  • ActiveLanguageMixin does not use the <field>_i18n version of the field, but rather the virtual field with the current active language. This makes sure no fallback values are accidentally saved for another language.

## 0.2.2 (2018-03-13)
  • Hide original field with ActiveLanguageMixin.

  • Raise an ValueError on accessing translated fields on a model fetched with defer('i18n').

  • do not accidentally add i18n to __dict__ in Model.create

  • Improve handling of explicit PK’s and expression rewriting code.

  • Add help_text to virtual fields with language=None.

## 0.2.1 (2018-01-24)
  • Dropped support for Django 1.9 and 1.10.

  • Used ugettext_lazy rather than ugettext to fix admin header translation [#32](https://github.com/zostera/django-modeltrans/pull/32)

  • Removed default value False for Field.editable, to allow using the translated version of a field in a ModelForm.

## 0.2.0 (2017-11-13)
  • No annotations are made while ordering anymore, instead, expressions are passed onto the original order_by() method.

  • Any translated fields used in Model.Meta.ordering is transformed into the correct expression with django 2.0 and later (fixes #25).

  • django.contrib.postgres.GinIndex is added to the i18n column if it’s supported by the django version used (1.11 and later). It can be disabled with the setting MODELTRANS_CREATE_GIN.

  • The migration generated from ./manage.py i18n_makemigrations used to move the data and add a GIN index. This is split into two commands: /manage.py i18n_makemigrations and /manage.py i18n_make_indexes.

  • Added support for values(**expressions)` with references to translated fields.

  • Added support for translated values in annotate()

## 0.1.2 (2017-10-23)
  • Ensure a dynamic mixed MultilingualQuerySet can be pickled.

  • Add basic support for Func in order_by()

## 0.1.1 (2017-10-23)
  • Allow adding MultilingualManager() as a manager to objects without translations to allow lookups of translated content through those managers.

## 0.1.0 (2017-10-23)
  • Use proper alias in subqueries, fixes #23.

  • Support lookups on and ordering by related translated fields (filter(category__name_nl='Vogels')), fixes #13.

  • Use KeyTextTransform() rather than RawSQL() to access keys in the JSONField. For Django 1.9 and 1.10 the Django 1.11 version is used.

## 0.0.8 (2017-10-19)
  • Check if MODELTRANS_AVAILABLE_LANGUAGES only contains strings.

  • Make sure settings.LANGUAGE_CODE is never returned from conf.get_available_languages()

## 0.0.7 (2017-09-04)
  • Cleaned up the settings used by django-modeltrans [#19](https://github.com/zostera/django-modeltrans/pull/19). This might be a breaking change, depending on your configuration.

    • AVAILABLE_LANGUAGES is now renamed to MODELTRANS_AVAILABLE_LANGUAGES and defaults to the language codes in the

      django LANGUAGES setting.

    • DEFAULT_LANGUAGE is removed, instead, django-modeltrans uses the django LANGUAGE_CODE setting.

  • Added per-language configurable fallback using the MODELTRANS_FALLBACK setting.

## 0.0.6 (2017-08-29)
  • Also fall back to DEFAULT_LANGUAGE if the value for a key in the translations dict is falsy.

## 0.0.5 (2017-07-26)
  • Removed registration in favor of adding the TranslationField to a model you need to translated.

  • Created documentation.

## 0.0.4 (2017-05-19)
  • Improve robustness of rewriting lookups in QuerySets

## 0.0.3 (2017-05-18)
  • Add the gin index in the data migration.

  • Added tests for the migration procedure.