Вместо исправления обезьяны вы можете скрыть кнопку на стороне клиента, используя JavaScript. HTML-код кнопки просмотра на сайте выглядит следующим образом:
<li><a href="/admin/r/4/2/" class="viewsitelink">View on site</a></li>
Если вы просто скроете тег привязки, вы получите часть круглой кнопки, которая будет отображаться так, как она применяется к тегу li. К сожалению, сейчас нет простого способа использовать css для выбора этого конкретного тега li, так как у него нет класса, имени или идентификатора. Таким образом, мы можем использовать jquery, который дает вам больше контроля над вашими селекторами. Поместите следующее в вашу статическую папку. Например, в расположении static / admin / user_change_form.js
django.jQuery( document ).ready(function($) {
$(".viewsitelink").parent().css('display', 'none')
});
Ваш admin.py может выглядеть примерно так:
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from django.contrib.admin import site
class CustomUserAdmin(UserAdmin):
class Media:
js = ['admin/user_change_form.js']
site.unregister(User)
site.register(User, CustomUserAdmin)
UPDATE
В Django 1.7 была добавлена функция * ModelAdmin.view_on_site , которая позволяет не отображать ссылку «Просмотр на сайте».