Version 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 ontranslatable_modelform_factory
as well — #221. TranslationQueryset
now has afallbacks()
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 methodextra()
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 returnNone
as per the new semantics introduced in Django 1.7. — #217.- Using
Q object
logical combinations orexclude()
on a translation-aware manager returned byget_translation_aware_manager
no longer yields wrong results. - Method
get_or_create
now properly deals with Django 1.6-style transactions.