📜  在 django admin 中隐藏特定属性 - Python (1)

📅  最后修改于: 2023-12-03 15:23:08.265000             🧑  作者: Mango

在 Django Admin 中隐藏特定属性

在使用 Django 开发应用时,Django Admin 是管理网站后台最主要的界面之一。而有时候我们需要隐藏某些属性,比如个人隐私信息或者敏感字段等。那么在 Django Admin 中如何隐藏这些特定属性呢?

方法一:重载 ModelAdmin 类

我们可以通过重载 ModelAdmin 类,来定制 Django Admin 的显示方式。例如,我们有一个 User 模型,其中有一个敏感字段为手机号:

from django.contrib import admin
from django.contrib.auth.models import User

class UserAdmin(admin.ModelAdmin):
    exclude = ('phone_number',)
    
admin.site.register(User, UserAdmin)

我们可以在 UserAdmin 中设置 exclude 属性,以排除掉 phone_number 字段。在 Django Admin 中,我们就看不到这个字段了。

方法二:使用 list_display 属性

另外一种方法是使用 list_display 属性,以只显示我们想要的字段。例如,我们有一个 Article 模型,并且我们只想显示文章的标题和作者:

from django.contrib import admin
from myapp.models import Article

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'author')
    
admin.site.register(Article, ArticleAdmin)

这样,在 Django Admin 中,我们只能看到这两个字段,而不会看到其它的字段。

结语

以上两种方法可帮助我们在 Django Admin 中隐藏特定属性。我们可以根据需求选择不同的方式来达到目的。当然,还有其它的方式来实现相同的效果,这里只是介绍其中两种较为常用的方法。