您的位置:首页 > 编程语言 > Go语言

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

2017-05-02 10:21 651 查看

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()
而不是这个装饰器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐