problem description:
1,向你的模型添加admin metadata 并不是所有的模型都可以或者应该被admin用户编辑,所以你需要标记那些需要管理界面的模型 上一章的Book模型添加一个管理界面的方法就是:
class Book(models.Model):
title = models.CharField(maxlength=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
class Admin:
pass
Admin声明标记这个类拥有一个管理界面,在Admin之下你可以配置许多选项 目前我们采用默认值,所以我们使用pass来表示Admin类是空的 如果你正在按这个例子写自己的代码,现在给Publisher和Author类添加Admin声明是个好主意 2,安装admin模型,简单的把"django.contrib.admin"添加到你的INSTALLED_APPS设置里 然后运行python manage.py syncdb来安装admin使用的额外的表 注意,在你第一次运行syncdb时,你很可能被问起是否创建一个superuser 如果那时你没有创建superuser,你需要运行djang/contrib/auth/bin/create_superuser.py 来创建一个admin用户,否则你就不能登录到管理界面里去 3,把URL模式添加到urls.py,如果仍在使用startproject创建的工程,admin的URL模式可能 已经在那儿了,但是被注释掉了,你的URL模式应该像这样:
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^admin/', include('django.contrib.admin.urls')),
)
就这样,现在运行python manage.py runserver来启动服务器,你将看到如下信息: Validating models… 0 errors found.
Django version 0.96-pre, using settings ‘mysite.settings’ Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
但当我进入http://127.0.0.1:8000/admin/时。。。。就会出现
ImportError at /admin/
No module named urls
错误。。。怎么解决呢。。。请各位高手帮帮忙吧!
我看到在我的django.contrib.admin 目录下没有urls.py文件啊!
Solution:
看的是以前的文档,装的最新版django。 强烈建议在做实验的时候,所看的文档与安装的环境版本一致。 不同的版本,其中的不同的地方还是很多的!
激活管理界面:
1、给需要管理的数据表模块添加admin配置 方式: 新建一个 admin.py Code:
from django.contrib import admin
from models import Publisher,Author,Book
admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)
2、新增配置信息
#1.0新增 admin 时遇到
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth',
)
修改INSTALLED_APPS #添加模型位置
INSTALLED_APPS = (
#'django.contrib.auth',
#'django.contrib.contenttypes',
#'django.contrib.sessions',
#'django.contrib.sites',
'mysite.books',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.sessions',
)
3、urls.py 新增:
from django.contrib import admin
admin.autodiscover()
(r'^admin/(.*)', admin.site.root),
关于admin界面的汉化其实很简单,在setting.py里将LANGUAGE_CODE从en-us改为zh-CN