基于 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()而不是这个装饰器。
相关文章推荐
- 基于 Django1.10 文档的深入学习(25)—— Applications 之 基础部分
- 基于 Django1.10 文档的深入学习(33)—— Using the Django authentication system 之login_required和LogiRequiredMixin
- 基于 Django1.10 文档的深入学习(32)—— Introduction to class-based views
- 基于 Django1.10 文档的深入学习(20)—— Using the Django authentication system 之 login()
- 基于 Django1.10 文档的深入学习(34)—— Customizing authentication in Django 之 基础
- 基于 Django1.10 文档的深入学习(26)—— Creating forms from models 之 基础
- 基于 Django1.10 文档的深入学习(18)—— Using the Django authentication system 之 LoginRequiredMixin
- 基于 Django1.10 文档的深入学习(21)——The Forms API 之 Form.errors
- 基于 Django1.10 文档的深入学习(6)—— Translation 之 short_description
- 基于 Django1.10 文档的深入学习(8)—— Model field reference 之 choices
- 基于 Django1.10 文档的深入学习(2)—— Settings.py 之 STATIC_*
- 基于 Django1.10 文档的深入学习(24)—— Form and field validation 之 cleaned_data
- 基于 Django1.10 文档的深入学习(22)——Sending email 之 send_mail()
- 基于 Django1.10 文档的深入学习(9)—— Extra instance methods 之 get_FOO_display()
- 基于 Django1.10 文档的深入学习(16)——Authentication backends 之 class ModelBackend
- 基于 Django1.10 文档的深入学习(17)——Customizing authentication 之 Custom users and permissions
- 基于 Django1.10 文档的深入学习(13)—— django.core.urlresolvers 之 reverse()
- 基于 Django1.10 文档的深入学习(12)—— django.shortcuts 之 redirect()
- 基于 Django1.10 文档的深入学习(13)—— Making queries 之 Q objects
- 基于 Django1.10 文档的深入学习(10)—— django.contrib.auth 之 User model