Мы с коллегой обсуждаем, правильно ли иметь методы моделирования, которые не имеют прямого отношения к данным модели.Например, методы, которые генерируют ссылки для страниц администратора.
Должны ли эти методы быть в модели, или это может быть отдельная функция, которая принимает имя_приложения в качестве аргумента?
class Resource(models.Model):
...
@classmethod
def __admin_list_url(cls):
return reverse(f'admin:{cls._meta.db_table}_changelist')
@classmethod
def get_admin_list_url(cls, caption='', query_string=''):
if not caption:
return '-'
return mark_safe(f'<a href="{cls.__admin_list_url()}{query_string}" target="_blank">{caption}</a>')