Django Sites Framework __str__ представление

Я экспериментирую с фреймворком Django Site. В форме UpdateView модель сайта _str_ представляет self.domain, но я хочу использовать self.name. Например, вместо 'www.test.com' я хочу, чтобы появилось 'Test, Inc.'.

Наверное, я мог бы изменить сам код модели Django Site (показан ниже), но я не очень хочу этого делать. Я бы предпочел перезаписать настройки в моем приложении или в представлении формы, но я не могу понять, как сделать ни то, ни другое.

class Site(models.Model):

    domain = models.CharField(
        _('domain name'),
        max_length=100,
        validators=[_simple_domain_name_validator],
        unique=True,
    )
    name = models.CharField(_('display name'), max_length=50)

    objects = SiteManager()

    class Meta:
        db_table = 'django_site'
        verbose_name = _('site')
        verbose_name_plural = _('sites')
        ordering = ['domain']

    def __str__(self):
        return self.domain

    def natural_key(self):
        return (self.domain,)

Когда я подклассифицирую модель Site, мой CustomSite пытается выполнить соединение с моделью Site и вызывает осложнения, поэтому кажется, что такой подход не идеален.

class CustomSite(Site):
    objects = SiteManager()

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'django_customsite'

Ниже приведена упрощенная версия формы, которую я тестировал. Форма работает. Она обновляет объект с нужным сайтом, но я все еще хотел бы знать, как использовать name в качестве представления вместо domain.

class StoreUpdateView(UpdateView):
    model = Site
    fields = [
        'store',
        'site_id',
    ]
    template_name = 'app/group-updateview.html'

Я в принципе сделал промежуточную таблицу (Site > Store > Products), но я хотел бы знать, как изменить настройку _str_ модели Site. Как я могу переписать параметр _str_ модели Site, чтобы вернуть поле Site name вместо поля domain?

Вернуться на верх