Django:删除管理员用户更改表单中的"网站上的视图"按钮

nem*_*ign 10 python django django-admin django-authentication

get_absolute_url()方法很酷,但在某些情况下不需要.django.contrib.auth.models.User默认设置它,这导致我的项目在管理员中有一个断开的链接.

我怎样才能防止这种情况发生?

在我的一个旧项目中,我设置了一个自定义模板,其中我删除了按钮的html,它听起来不像是一个可扩展的好解决方案.还有什么更好的?

pra*_*mar 8

从 django 1.7 开始,每个模型都可以这样做。

# myapp/admin.py
from django.contrib import admin
from myapp.models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    view_on_site = False

admin.site.register(MyModel,MyModelAdmin)
Run Code Online (Sandbox Code Playgroud)


com*_*tor 7

如果你点击Django 1.7链接,该网站会告诉你"它是一个不再受支持的Django的不安全版本.请升级到更新版本!"

对于Django 1.9,以下解决方案可以正常工作,如Django 文档中所述

在myapp/admin.py中

from django.contrib.admin import AdminSite
class MyAdminSite(AdminSite):
    # Disable View on Site link on admin page
    site_url = None
Run Code Online (Sandbox Code Playgroud)