Компания с множеством разных названий

У меня следующая ситуация, которая выглядит простой, но я не знаю, как создать для нее модели:(

Вот что у меня есть.

Модель Компания, содержащая только описание (поле примечание)

class Company(models.Model):
    note = models.TextField(_('note'), blank=True, null=True)
    class Meta:
        verbose_name = _('Company')

    def __str__(self):
        return f'{self.id}'

У каждой компании может быть много разных названий (официальное название, краткое название, длинное название и т.д.) У меня есть модель Название компании для нее.

class CompanyName(models.Model):
    company = models.ForeignKey(Company, related_name='name_set')
    type = models.CharField(_('type'), max_length=4, choices=NameType.choices)
    name = models.CharField(_('name'), max_length=256)

    class Meta:
        verbose_name = _('Company name')

    def __str__(self):
        return f'{self.type} {self.name}'

У меня проблема: Как внутри Компании модели получить "Официальное название" из Названия компании Модели. Я бы хотел использовать официальное название вместо f'{self.id}' внутри функции __str__.

Большое вам спасибо за вашу помощь и потраченное время,

Вы получите это с помощью .filter(type='Official Name'):

class Company(models.Model):
    note = models.TextField(_('note'), blank=True, null=True)
    class Meta:
        verbose_name = _('Company')

    def __str__(self):
        official = self.name_set.filter(type='Official Name').first()
        if official:
            return f'{official.name}'
        return f'{self.id}'
Вернуться на верх