Настройки для TabularInline в Джанго - PullRequest
3 голосов
/ 21 февраля 2012

У меня есть две модели, например Book и Author.У автора может быть много книг, и поэтому у меня есть внешний ключ от Book до таблицы Author.

Я отображаю записи Book и Author в своем приложении Django, используяTabularInline класс.Это прекрасно работает, но я получаю Book object в верхнем левом углу каждой строки книги, отображаемой в встроенном администраторе автора.Как я могу удалить это?Я стараюсь избегать редактирования шаблонов администратора Django, если это возможно, и некоторые предлагают мне переопределить метод __unicode__ в модели Book, но я хотел бы полностью его скрыть.

Возможно ли это?

Моя Book модель также ссылается на другую модель под названием Publisher.Значение __unicode__ издателя отображается в одном из столбцов записей книги в TabularInline, но я бы хотел связать это со страницей администратора для этой записи Publisher вместо простого отображения простого текста.

Что я должен указать для этого?

Ответы [ 2 ]

6 голосов
/ 21 февраля 2012

Почему бы просто не переопределить шаблон администратора, чтобы добавить немного CSS?

Например, в шаблонах / admin / testapp / author / change_form.html:

{% extends 'admin/change_form.html' %}

{% block content %}
    <style type="text/css">
    fieldset.module td.original p { display:none; }
    </style>
    {{ block.super }}
{% endblock %}

Вы можете сделать это в глобальном масштабе, для каждого приложения или для модели .

Это работает и кажется довольно безопасным, в отличие от переопределения самого шаблона fieldset - что имеет смысл избегать этого.

1 голос
/ 21 февраля 2012

Вы можете скрыть ссылки "Book object" с некоторыми JS, добавленными на AdminSite. Это должно быть что-то вроде:

django.jQuery('.dynamic-phone_set h3').hide();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...