django.contrib中其它可用的特性,如用户鉴别系统(django.contrib.auth)、支持匿名会话(django.contrib.sessioins)以及用户评注系统(django.contrib.comments)。
1、setting配置
INSTALLED_APPS # 自行添加 'django.contrib.admin'
INSTALLED_APPS # 确保存在 Django的管理工具需要这3个包 'django.contrib.auth','django.contrib.contenttypes'和'django.contrib.sessions'
MIDDLEWARE_CLASSES 'django.middleware.common.CommonMiddleware' 'django.contrib.sessions.middleware.SessionMiddleware' 'django.contrib.auth.middleware.AuthenticationMiddleware' 。
2、模型安装
这是1.9版本的命令$ python manage.py makemigrations books 表示保存更改到一个migration中,这都是文件 $ python manage.py sqlmigrate books 0001 表示执行一个migrations ,并返回他们的SQL -- App_01/migrations/0001_initial.py $ python manage.py migrate 执行变更 $ python manage.py shell 可进入配置数据库-- $ python manage.py createsuperuser 创建一个超级用户
这时1.9版本以前的命令
python manage.py validate 检查你的模型的语法和逻辑 python manage.py sqlall books 生成 CREATE TABLE 语句 python manage.py syncdb 提交SQL语句至数据库 python manage.py dbshell 可进入数据库交互(sql语句) python manage.py shell 带环境的python交互 from books.models import Publisher 可在此对数据库操作 p1 = Publisher(name='Apress', address='2855 Telegrap.................... p1.save() sql 会执行一条INSERT 语句
3、将admin添加 URLconf
1.9版本
from django.conf.urls import url from django.contrib import admin from books import views urlpatterns = [ url(r'^admin/', admin.site.urls),]
1.9以前的
# Include these import statements... from django.contrib import admin admin.autodiscover() # And include this URLpattern... urlpatterns = patterns('', # ... (r'^admin/', include(admin.site.urls)), # ... )
4、更改admin管理界面语言
MIDDLEWARE_CLASSES # 更改django的语言 setting.py 'django.contrib.sessions.middleware.SessionMiddleware'. 'django.middleware.locale.LocaleMiddleware'
5、注册模型
将模型中定义的数据类型,注册到 admin.py中,就可以通过admin管理界面操作
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)
设置可选字段
为了指定email字段为可选,你只要编辑Book模块(它在mysite/books/models.py文件里),在email字段上加上blank=True。
(默认blank=False),但有些数据指空(字符串)会错误如:日期型、时间型和数字型字段,那么只能用NULL指空
class Book(models.Model): title = models.CharField(max_length=100) authors = models.ManyToManyField(Author) publisher = models.ForeignKey(Publisher) publication_date = models.DateField(**blank=True, null=True** )
自定义字段标签
class Author(models.Model): # 指定verbose_name将Author.email的标签改为e-mail email = models.EmailField(blank=True, **verbose_name='e-mail'** )
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。