`
yixiusztx
  • 浏览: 2736 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

django 站点管理

 
阅读更多

django.contrib 包

管理工具是django.contrib的一部分

站点管理工具(django.contrib.admin)

用户鉴别系统(django.contrib.auth)

支持匿名会话(django.contrib.sessioins)

用户评注系统(django.contrib.comments)

激活管理界面

第一步,修改settings.py:

  1. 'django.contrib.admin' 加入setting的INSTALLED_APPS

  1. INSTALLED_APPS 中必须包含'django.contrib.auth''django.contrib.contenttypes''django.contrib.sessions' ,Django的管理工具需要这3个包

  1. 确保MIDDLEWARE_CLASSES 包含'django.middleware.common.CommonMiddleware''django.contrib.sessions.middleware.SessionMiddleware' 和‘django.middleware.locale.LocaleMiddleware‘支持中文,'django.contrib.auth.middleware.AuthenticationMiddleware'

运行 python manage.py syncdb 。这一步将生成管理界面使用的额外数据库表。 当你把'django.contrib.auth' 加进INSTALLED_APPS 后,第一次运行syncdb 命令时, 系统会请你创建一个超级用户。 如果你不这么作,你需要运行python manage.py createsuperuser 来另外创建一个admin的用户帐号,否则你将不能登入admin (提醒一句: 只有当INSTALLED_APPS 包含'django.contrib.auth' 时,python manage.py createsuperuser 这个命令才可用.)

第三,将admin访问配置在URLconf(记住,在urls.py 中). 默认情况下,命令django-admin.py startproject 生成的文件urls.py 是将Django admin的路径注释掉的,你所要做的就是取消注释。 请注意,以下内容是必须确保存在的:

from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# ...
(r'^admin/', include(admin.site.urls)),
# ...
)

启动开发服务器 python manage.py runserver,访问:http://127.0.0.1:8000/admin/


将Models加入到Admin管理中

在books(app)目录下创建一个文件:`` admin.py`` ,然后输入以下代码:

from django.contrib import admin
from mysite.books.models import Publisher, Author, Book
admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)

Admin 管理 如何工作的

服 务启动,Django从`` url.py`` 引导URLconf,执行`` admin.autodiscover()`` ,autodiscover()遍历INSTALLED_APPS配置,并寻找相关的 admin.py文件。 如果在指定的app目录下找到admin.py,它就执行其中的代码。

在`` books`` 应用程序目录下的`` admin.py`` 文件中,每次调用`` admin.site.register()`` 都将那个模块注册到管理工具中。 管理工具只为那些明确注册了的模块显示一个编辑/修改的界面。

应 用程序`` django.contrib.auth`` 包含自身的`` admin.py`` ,所以Users和Groups能在管理工具中自动显示。 其它的django.contrib应用程序,如django.contrib.redirects,其它从网上下在的第三方Django应用程序一样, 都会自行添加到管理工具。

综上所述,管理工具其实就是一个Django应用程序,包含自己的模块、模板、视图和URLpatterns。 你要像添加自己的视图一样,把它添加到URLconf里面。 你可以在Django基本代码中的django/contrib/admin 目录下,检查它的模板、视图和URLpatterns,但你不要尝试直接修改其中的任何代码,因为里面有很多地方可以让你自定义管理工具的工作方式。 (如果你确实想浏览Django管理工具的代码,请谨记它在读取关于模块的元数据过程中做了些不简单的工作,因此最好花些时间阅读和理解那些代码。)

自定义ModelAdmi类

blank=True、null=True和verbose_name修改其实是模块级别,而不是管理级别的。

Django还提供了大量选项针对特别的模块自定义管理工具。

这些选项都在ModelAdmin classes 里面,这些类包含了管理工具中针对特别模块的配置。

1.自定义列表、表单

from django.contrib import admin
from mysite.books.models import Author
class AuthorAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'email')#列表字段设置
search_fields = ('first_name', 'last_name')#查询设置
admin.site.register(Author, AuthorAdmin)#为Author 模块定义一个ModelAdmin
我们新建了一个类AuthorAdmin ,它是从django.contrib.admin.ModelAdmin 派生出来的子类,
保存着一个类的自定义配置,以供管理工具使用。 我们只自定义了一项:list_display
它是一个字段名称的元组,用于列表显示。 当然,这些字段名称必须是模块中有的。
class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'publisher', 'publication_date')
    list_filter = ('publication_date',)
    date_hierarchy = 'publication_date' #日期过滤方式
    ordering = ('-publication_date',)   #倒序
    fields = ('title', 'authors', 'publisher', 'publication_date')#自定义表单,也可隐藏某个字段
    filter_horizontal = ('authors',)#多对多表单控件样式,支持多个字段,可选filter_vertical垂直排列
  
raw_id_fields = ('publisher',)#打开新页面列表可选项

分享到:
评论

相关推荐

    django站点管理详解

    Django站点管理详解主要聚焦于如何使用Django框架构建和管理Web站点。Django的管理界面(admin)是一个强大的工具,允许管理员执行多种操作,如添加、编辑和删除网站内容,而无需直接接触数据库。 首先,Django的...

    djangoBook 中文 v1.0 v2.0 合并美化版 原创

    第六章:Django站点管理 第七章:表单 第八章:高级视图和URL配置 第九章:模版高级进阶 第十章:模型高级进阶 第十一章:通用视图 第十二章:部署Django 第十三章:输出非HTML内容 第十四章:会话、用户和...

    Django后台站点管理

    后台admin模块,需要后台管理的内容有:文章、分类、作者、评论、自定义的user用户; # 2.登录和注册模块; # 3.前端页面的数据展示和路由的配置; # 项目和功能分析 # 1.文章的呈现:包括文章的标题、内容、作者、...

    python django建站教程

    第六章:Django站点管理 第七章:表单 第八章 高级视图和URL配置 第九章:模版高级进阶 第十章 模型高级进阶 第十一章:通用视图 第十二章: 部署Django 第十三章: 输出非HTML内容 第十四章: 会话...

    python Django web 联通用户管理系统实训代码

    2. 自动化Admin管理站点:Django自带一个基于Web的Admin管理站点,无需自行开发,可快速完成对模型的管理。 3. 强调面向对象编程思想:Django强调对模型、视图、控制器的封装,让开发人员更关注业务开发本身而不是...

    Django book2中文版

    ### 第六章:Django站点管理 - **管理后台**:Django内置了强大的管理后台,支持对模型数据进行CRUD操作。 - **自定义管理界面**:可以根据需求定制管理界面,如添加过滤器、排序等。 ### 第七章:表单 - **表单...

    一个基于 Django 构建的CMS管理系统源码

    这是一个基于 Django 构建的开源内容管理系统,它专注于用户体验,并为设计人员和开发人员提供精确的控制。 功能特点 为作者提供快速、美观的界面 完全控制前端设计和结构 可扩展至数百万页面和数千编辑器 开箱即...

    Django_book_2_中文版.pdf

    #### 第六章 Django站点管理 - **激活管理界面** - Django内置了一个强大的管理界面。 - 通过激活管理应用并在settings.py中注册模型来启用。 - **使用管理工具** - 管理界面提供了增删改查等功能。 - 可以...

    提供一组用于管理Django 站点 的搜索引擎优化 (SEO) 的工具

    这是一套 Django 的 SEO 工具。 它允许您将元数据与: * 绝对路径 * 模型实例 * 模型类 * 意见 元数据可以在管理员的集中位置进行编辑,也可以与任何相关模型一起编辑。 然而,这是一个框架,而不是一个应用程序...

    django4.1中文手册

    入门教程: 第 1 节:请求和响应 | 第 2 节:模型和管理站点 | 第 3 节:视图和模板 | 第 4 节:表单和通用视图 | 第 5 节:测试 | 第 6 节:静态文件 | 第 7 节:自定义管理站点 进阶教程: 如何编写可复用的应用 |...

    Python Web 框架,第 1 部分 使用 Django 和 Python 开发 Web 站点.doc

    标题与描述中的关键词“Python Web框架”,“Django”,“Python开发Web站点”明确指出了本文档的主题,即使用Python编程语言与Django框架进行Web应用开发。文档内容虽然包含了一些无法解析的[pic]标记,但核心信息...

    django-dynamic-scraper, 通过 Django 管理界面创建 Scrapy scraper.zip

    django-dynamic-scraper, 通过 Django 管理界面创建 Scrapy scraper django-dynamic-scraper动态抓取器是一个用于 Django的应用程序,它构建在抓取框架的顶部,让你通过 Django 管理接口创建和管理爬虫爬虫。...

    Django book pdf 完整版

    - **第6章:Django管理站点** - 描述了Django的内置管理界面,以及如何定制和扩展它。 - **第7章:表单处理** - 讲述了如何创建和处理表单数据,包括验证和错误处理。 - **第8章:高级视图和URL配置** - 探讨了复杂...

    python项目之django社团管理系统(django完整源码+说明文档).zip

    - 系统设置:如站点配置、权限配置等,可能通过Django的settings.py文件进行配置。 3. Django项目结构 通常,一个Django项目会包含多个应用(app),在这个项目中,可能有如users、clubs、events等应用,每个应用都...

Global site tag (gtag.js) - Google Analytics