I'm using django modeltranslation for a multi-language site.
Language fallback works good when reading attributes directly. For example, if current language is German and I print object.title, if the German title is not defined I'll see the english title.
I would expect fallback to work also on queries, but that's not true. In fact, if i do something like
results = MyModel.objects.filter(title = 'hello')
this will get no results if the German title is not set, while I would like it to return the object with english title "hello".
How can I make this work?
Thanks in advance.
The thing to do here is to explicitly query the desire language. In your case:
Why this work? Because when you query the specific language, ModelTranslation keep it. Otherwise it use the current language.
I hope it helps!
You must ensure that your model is registered in translation.py
In this way all the queries that are done will return the appropriate field depending on the language in which it is, this because to register it is created a MultilingualManager