Пользовательский админсайт Django не показывает ссылку на поле ForeignKey, доступное только для чтения

В стандартном Django Admin Site, если модель зарегистрирована с полями ForegingKey и эти поля включены в readonly_fields (с помощью свойства модели или метода get_readonly_fields), значение поля отображается со ссылкой на Change View, но это не работает на пользовательском Django Admin Site. Например: У меня есть две модели:

class ModelA(models.Model):
    field_a = models.CharField(max_length=50)

class ModelB(models.Model):
    model_a = models.ForeignKey(ModelA, on_delete=models.PROTECT)

Я зарегистрировался на стандартном сайте Django Admin Site:

admin.register(ModelA)

@register(ModelB)
class ModelBAdmin(admin.ModelAdmin):
    model = ModelB
    readonly_fields = ["model_a"]

Так я получаю в представлении изменений моделиB в админке значение поля (str модели) со ссылкой на представление изменений связанной модели:

Ссылка, указывающая на Chang View

Но если я регистрирую модели в Custom Admin Site, ссылка не генерируется.

Как я могу расширить свой пользовательский админский сайт, чтобы генерировать эти ссылки?

PD1: Я знаю, что могу написать пользовательские методы для создания ссылок, но это не DRY способ сделать это и не работает хорошо с методом get_readonly_fields

.

PD2: Если я регистрирую связанную модель (ModelA в примере) на стандартном сайте администратора, ссылка генерируется, но указывает на стандартный сайт администратора, нарушая цель пользовательского сайта администратора.

Я разместил тот же вопрос на официальном форуме Django: forum.djangoproject.com/t/9472/5

Создал тикет из-за отсутствия строки в методе get_admin_url в вспомогательном классе AdminReadOnlyField, Временное решение находится в тикете: code.djangoproject.com/ticket/33077

PD: Почему кто-то отмечает этот пост как плохой вопрос? Он генерирует тикет для патча, так что это была справедливая проблема, это мой первый вопрос в StackOverflow и это обескураживает.

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