Skip to content

Version 1.0.0

Compare
Choose a tag to compare
@spectras spectras released this 19 Dec 12:16
1.0.0

Python and Django versions supported:

  • Django 1.3 is no longer supported.
  • Python 2.6 is no longer supported. Though it is likely to work for the time being, it has been dropped from the tested setups.

New features:

  • TranslatableModelForm has been refactored to make its behavior more consistent. As a result, it exposes two distinct language selection modes, normal and enforce, and has a clear API for manually overriding the language — #221.
  • The new features of modelform_factory introduced by Django 1.6 and 1.7 are now available on translatable_modelform_factory as well — #221.
  • TranslationQueryset now has a fallbacks() method when running on Django 1.6 or newer, allowing the queryset to use fallback languages while retaining all its normal functionalities – #184.
  • Passing additional select items in method extra() is now supported. — #207.
  • It is now possible to use TranslationQueryset as default queryset for translatable models. — #207.
  • A lot of tests have been added, hvad now has 100% coverage on its core modules. Miscellaneous glitches found in this process were fixed.
  • Added MySQL to tested database backends on Python 2.7.

Compatibility warnings:

  • TranslatableModelForm has been refactored to make its behavior more consistent. The core API has not changed, but edge cases are now clearly specified and some inconsistencies have disappeared, which could create issues, especially:
    • Direct use of the form class, without passing through the factory method. This used to have an unspecified behavior regarding language selection. Behavior is now well-defined. Please ensure it works the way you expect it to.

Fixes:

  • TranslatableModelForm.clean() can now return None as per the new semantics introduced in Django 1.7. — #217.
  • Using Q object logical combinations or exclude() on a translation-aware manager returned by get_translation_aware_manager no longer yields wrong results.
  • Method get_or_create now properly deals with Django 1.6-style transactions.