maxclax
@maxclax

Как убрать повторение кода в DJANGO?

Имею много моделей, и в админке в каждом admin.py прописываю форматирование колонок.
list_display = ('title', 'info_tag_created_at', 'info_tag_updated_at')
    list_filter = ("languages", "is_view")


    def info_tag_updated_at(self, obj):
        if not obj.pk:
            return ''
        return obj.updated_at.strftime("%d.%m.%Y") + "<br/> <sup>" + obj.updated_at.strftime("%H:%M:%S") + "</sup>"

    info_tag_updated_at.short_description = _('news.admin.info_tag_updated_at.short_description')
    info_tag_updated_at.allow_tags = True

    def info_tag_created_at(self, obj):
        if not obj.pk:
            return ''
        return obj.created_at.strftime("%d.%m.%Y") + "<br/> <sup>" + obj.created_at.strftime("%H:%M:%S") + "</sup>"

    info_tag_created_at.short_description = _('news.admin.info_tag_created_at.short_description')
    info_tag_created_at.allow_tags = True


В поисках решения, как обойти повторение кода. К примеру почти в каждой модели есть поля created_at и updated_at соответственно в каждом admin.py прописываю выше написанные функции. Помимо них есть много других, которые повторяются. Как это обойти? Может можно вынести в один файл его или есть совершенно другое решение этой задачи?
  • Вопрос задан
  • 2302 просмотра
Решения вопроса 1
dizballanze
@dizballanze
Software developer at Yandex
Сделайте свой базовый ModelAdmin и вынесите туда общее для ВСЕХ моделей.
Сделайте несколько mixin-классов для добавления каких-то методов, которые только в некоторых моделях нужны.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы