This module offers functions and abstract base classes that can be used to store translated models. There isn’t much magic going on here.

Usage example:

class News(models.Model, TranslatedObjectMixin):
    active = models.BooleanField(default=False)
    created = models.DateTimeField(

class NewsTranslation(Translation(News)):
    title = models.CharField(max_length=200)
    body = models.TextField()

Print the titles of all news entries either in the current language (if available) or in any other language:

for news in News.objects.all():
    print news.translation.title

Print all the titles of all news entries which have an english translation:

from django.utils import translation
for news in News.objects.filter(translations__language_code='en'):
    print news.translation.title
class feincms.translations.TranslatedObjectManager

This manager offers convenience methods.

TranslatedObjectManager.only_language(language=<function short_language_code at 0x32a4e60>)

Only return objects which have a translation into the given language.

Uses the currently active language by default.

class feincms.translations.TranslatedObjectMixin

Mixin with helper methods.


Return the cache key used to cache this object’s translations so we can purge on-demand


Return a class which can be used as inheritance base for translation models

feincms.translations.admin_translationinline(model, inline_class=<class 'django.contrib.admin.options.StackedInline'>, **kwargs)

Returns a new inline type suitable for the Django administration:

from django.contrib import admin from myapp.models import News, NewsTranslation,
admin_translationinline(NewsTranslation), ],



Returns true if current or passed language is the primary language for this site. (The primary language is defined as the first language in settings.LANGUAGES.)


Pass the return value of this function to .transform() to automatically resolve translation objects

The current language is used if language_code isn’t specified.


Extract the short language code from its argument (or return the default language code).

>>> short_language_code('de')
>>> short_language_code('de-at')
>>> short_language_code() == short_language_code(settings.LANGUAGE_CODE)

Previous topic

Template tags

Next topic


This Page