Как переопределить класс 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')
работал просто отлично.