Как переопределить класс admin.ModelAdmin из пакетов сайта?

я хочу переопределить help_text для некоторой модели в пакетах сайта. но я, очевидно, не могу просто изменить его в пакете, потому что он не будет сохранен после обновления пакетов и некоторых других действий.

    crontab = models.ForeignKey(
        CrontabSchedule, on_delete=models.CASCADE, null=True, blank=True,
        verbose_name=_('crontab'), help_text=_('Use one of interval/crontab'),
    )

Возможно, мне придется создать какое-то приложение и переопределить все в admin.py, но я не уверен, что это хорошая практика.

также есть вариант с локализацией, который я рассматриваю, но мне все равно придется создавать приложение для этого.

Вы можете создать отдельный файл/папку.

custom/admin.py

from django.contrib import admin

class CustomModelAdmin(admin.ModelAdmin):
    # Override function/properties

Затем в своем <app>/admin.py наследуйте от созданного вами пользовательского класса

from custom.admin import CustomModelAdmin

class ClassName(CustomModelAdmin):
    # Your code

from django_celery_beat.models import PeriodicTask

PeriodicTask._meta.get_field('crontab').help_text = ('overriding text')

работал просто отлично.

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