Вы можете создать «прокси-объект», который за str(..)
вернет подробное имя. Например:
from django.apps import apps
class VerboseName:
def __init__(self, app_name, model_name=None):
if self.model_name is None:
self.app_name, self.model_name = app_name.split('.', 1)
else:
self.app_name = app_name
self.model_name = model_name
def __str__(self):
return str(apps.get_model(self.app_name, self.model_name)<b>._meta.verbose_name</b>)
Тогда мы можем использовать этот VerboseName
объект:
class Restaurant(models.Model):
owner_company = models.ForeignKey(
'companies.OwnerCompany',
on_delete=models.PROTECT,
<b>verbose_name=VerboseName('companies', 'OwnerCompany')</b>
)
или с точкой:
class Restaurant(models.Model):
owner_company = models.ForeignKey(
'companies.OwnerCompany',
on_delete=models.PROTECT,
<b>verbose_name=VerboseName('companies.OwnerCompany')</b>
)
Название приложения Однако здесь требуется.