基于 Django1.10 文档的深入学习(32)—— The Django admin site 之 基础

The Django admin site Django站点管理

Django最强大的部分之一是自动管理界面。 它从模型中读取元数据,以提供一个快速的,以模型为中心的界面,信任的用户可以管理您网站上的内容。 管理员的建议使用仅限于组织的内部管理工具。 它不是为了建立你的整个前端。

管理员有许多钩子用于定制,但要注意试图专门使用这些钩子。 如果您需要提供一个更加以进程为中心的接口来抽取数据库表和字段的实现细节,则可能是编写自己的视图的时候了。

在本文中,我们将讨论如何激活,使用和定制Django的管理界面。


ModelAdmin objects

class ModelAdmin[source]

ModelAdmin类是管理界面中模型的表示形式。 通常,这些存储在应用程序中名为admin.py的文件中。 我们来看看一个非常简单的ModelAdmin示例:

from django.contrib import admin
from myproject.myapp.models import Author

class AuthorAdmin(admin.ModelAdmin):
    pass
admin.site.register(Author, AuthorAdmin)

你需要一个ModelAdmin对象吗?

在上述示例中,ModelAdmin类未定义任何自定义值(还)。 因此,将提供默认的管理界面。如果您对默认的管理界面感到满意,则无需定义一个ModelAdmin对象 - 您可以注册模型类而不提供ModelAdmin描述。前面的例子可以简化为:

from django.contrib import admin
from myproject.myapp.models import Author

admin.site.register(Author)

The register decorator注册装饰器

register(*models, site=django.admin.sites.site)[source]

还有一个注册您的ModelAdmin类的装饰器:

from django.contrib import admin
from .models import Author

@admin.register(Author)
class AuthorAdmin(admin.ModelAdmin):
    pass

如果您不使用默认的AdminSite,那么它将被赋予一个或多个模型类,以便在ModelAdmin和可选的关键字参数站点注册:

from django.contrib import admin
from .models import Author, Reader, Editor
from myproject.admin_site import custom_admin_site

@admin.register(Author, Reader, Editor, site=custom_admin_site)
class PersonAdmin(admin.ModelAdmin):
    pass

如果您必须在__init __()方法中引用模型管理类,则不能使用此装饰器,例如。super(PersonAdmin,self).__ init __(* args,** kwargs)。 如果你使用Python 3,而不必担心支持Python 2,你可以使用super().__ init __(* args,** kwargs)。 否则,你必须使用admin.site.register()而不是这个装饰器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值