django管理员
Django管理员
Django为潜在的开发人员提供了许多功能:成熟的标准库,活跃的用户社区以及Python语言的所有优点。 尽管其他Web框架也可以提出类似的要求,但Django的独特资产是其内置的管理应用程序-admin。
管理员提供了开箱即用的高级创建-读取-更新-删除(CRUD)功能,从而消除了重复工作。 对于开发中的许多Web应用程序来说,这是关键,当程序员可以快速探索其数据库模型时,以及在部署中,当非技术性最终用户可以使用管理员来添加和编辑站点内容时,这就是关键。
在现实世界中,总是需要执行一些自定义。 Django文档提供了许多有关重新设置管理员基本外观的准则,并且Django本身包含一些简单的方法来覆盖部分管理员行为。 如果您需要做更多呢? 你从哪里开始? 本文提供了一些有关高级管理员自定义的准则。
管理员快速浏览
大多数Django开发人员都熟悉admin的默认功能。 为了快速查看,首先通过编辑顶级urls.py启用清单1中的管理员。
清单1.在urls.py中启用管理员
from django.conf.urls.defaults import *
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Uncomment the next line to enable the admin:
(r'^admin/(.*)', admin.site.root),
)
您还需要将django.contrib.admin
应用程序添加到settings.INSTALLED_APPS
。
在继续之前,建议任何打算广泛自定义管理员的人熟悉源代码。 对于支持快捷方式或符号链接的操作系统,将其制作为管理应用程序可能很有用。
管理员位于Django软件包中。 假设它是使用setuptools安装的,则admin位于django / contrib / admin下的站点包中。 这是一个从项目到Django管理源的符号链接示例,您可以根据您的操作系统和Django安装位置进行自定义,以方便复制和参考:
$ ln -s /path/to/Python/install/site-packages/django/contrib/admin admin-source
admin.autodiscover()
方法遍历settings.INSTALLED_APPS中的每个应用程序,并查找名为admin.py的文件。 通常将其放置在应用程序目录的顶层,与models.py处于同一级别。
示例应用程序需要清单2中提供的models.py。下面显示相应的admin.py。
清单2.此应用程序的样本models.py
from django.db import models
class Document(models.Model):
'''A Document is a blog post or wiki entry with some text content'''
name = models.CharField(max_length=255)
text = models.TextField()
def __unicode__(self):
return self.name
class Comment(models.Model):
'''A Comment is some text about a given Document'''
document = models.ForeignKey(Document, related_name='comments')
text = models.TextField()
此时,您可以通过运行Django开发服务器来调用admin:
python manage.py runserver
管理员位于默认位置http:// localhost:8000 / admin /。 登录后,您会看到下面显示的基本管理屏幕。