37 lines
1001 B
Python
37 lines
1001 B
Python
"""Translation app models."""
|
|
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
|
class LanguageQuerySet(models.QuerySet):
|
|
"""QuerySet for model Language"""
|
|
|
|
def by_locale(self, locale: str) -> models.QuerySet:
|
|
"""Filter by locale"""
|
|
return self.filter(locale=locale)
|
|
|
|
def by_title(self, title: str) -> models.QuerySet:
|
|
"""Filter by title"""
|
|
return self.filter(title=title)
|
|
|
|
|
|
class Language(models.Model):
|
|
"""Language model."""
|
|
|
|
title = models.CharField(max_length=255,
|
|
verbose_name=_('Language title'))
|
|
locale = models.CharField(max_length=10,
|
|
verbose_name=_('Locale identifier'))
|
|
|
|
objects = LanguageQuerySet.as_manager()
|
|
|
|
class Meta:
|
|
"""Meta class."""
|
|
|
|
verbose_name = _('Language')
|
|
verbose_name_plural = _('Languages')
|
|
|
|
def __str__(self):
|
|
"""String method"""
|
|
return f'{self.title} ({self.locale})'
|