Для вывода объектов на разных языках я использую приложение django-modeltranslation. У него есть особенность, если поле для текущего языка не заполнено, то выводится информация на языке по-умолчанию.

К примеру, у меня есть модель Project, которая использует функционал django-modeltranslation. К данной модели есть требование: не показывать проект на сайте, если он не соответствует набору заданных правил. Одно из правил: все поля подлежащие переводу должны быть переведены. Для реализации проверки создан метод public() менеджера модели.

Как видно, это требование вступает в конфликт с функционалом приложения django-modeltranslation. Надо доработать метод менеджера модели, чтобы он как-то учитывал следующий код:

In [1]: from src.storage.models import Customer

In [2]: c = Customer.objects.all()[0]

In [3]: print c.short_name
СПЛАТ

In [4]: print c.short_name_ru
СПЛАТ

In [5]: print c.short_name_en
None

In [6]: from src.translation import CustomerOpts

In [7]: CustomerOpts.fields
Out[7]: ('short_name', 'long_name')

In [8]: from django.conf import settings

In [9]: print settings.LANGUAGES
(('ru', 'Russian'), ('en', 'English'))

Принимаются идеи того, как решить эту задачу универсально, без лишнего дублирования кода.

Ушёл думать...