Компания с множеством разных названий
У меня следующая ситуация, которая выглядит простой, но я не знаю, как создать для нее модели:(
Вот что у меня есть.
Модель Компания, содержащая только описание (поле примечание)
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}'