Django中TabularInline的自定义

时间:2012-02-21 14:31:24

标签: python django django-admin

我有两个模型,例如BookAuthor。作者可以有很多书,因此我有一个从BookAuthor表的外键。

我使用Book类在我的Django应用程序中显示AuthorTabularInline记录。这很好但我在作者的内联管理员中显示的每个书行的左上角都有一个Book object。我该如何删除?我试图避免编辑Django管理模板,如果可能的话,有些人建议我应该覆盖__unicode__模型上的Book方法,但我想完全隐藏它。

这可能吗?

我的Book模型还引用了另一个名为Publisher的模型。发布商的__unicode__值显示在TabularInline的一个图书记录列中,但我希望能够将其链接到该Publisher记录的管理页面,而不是只显示简单的文字。

我应该指定什么来做这件事?

2 个答案:

答案 0 :(得分:6)

为什么不直接覆盖管理模板来添加一些CSS?

例如,在templates / 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 %}

你可以这样做globally, per app or per model

它可以工作并且看起来非常安全,不像覆盖字段集模板本身 - 这有助于避免这样做。

答案 1 :(得分:1)

你可以通过添加到AdminSite的一些JS隐藏“Book对象”链接。它应该是这样的:

django.jQuery('.dynamic-phone_set h3').hide();