MultiLingualField for MongoEngine (for Python 2k and 3k)
Simple extension for MongoEngine, which adds MultiLingualField (based on MultiLingualString). Some self-describing examples:
from locale import setlocale, LC_ALL
from mongoengine import Document, connect
from mongoengine_mls import MultiLingualField
class Country(Document):
meta = {"indexes": ["name.language"]}
name = MultiLingualField(required=True)
setlocale(LC_ALL, "en_US.UTF-8")
connect("test")
ru = Country(name={"en": "Russia", "ru": u"Россия"})
ru.save()
print(ru.name) # => Russia
print(ru.name >> "ru") # => Россия
ru2 = Country.objects.first()
ru2.name = [
{"language": "en", "value": "Russian Federation"},
{"language": "ru", "value": u"Российская Федерация"}
]
ru2.save()
print(ru2.name) # => Russia Federation
print(type(ru2.name)) # => <class 'mls.MultiLingualString'>