1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > django-admin

django-admin

时间:2019-08-06 22:15:08

相关推荐

django-admin

Django的管理员模块是Django的标准库django.contrib的一部分。这个包还包括其它一些实用的模块:

django.contrib.auth django.contrib.sessions ments 激活admin模块的方法是: 1. 在INSTALLED_APPS设置文件中,加入'django.contrib.admin' 2. 再添加 'django.contrib.auth', 'django.contrib.contenttypes' 'django.contrib.sessions' 因为admin模块依赖 3. 在MIDDLEWARE_CLASSES属性中添加 'monMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware' 'django.contrib.auth.middleware.AuthenticationMiddleware'. 也是因为依赖 4. 运行python manage.py syncdb,用于创建为admin等模块创建新的数据库表。 因为apps中有auth模块,会要求你创建一个超级用户。如果你取消这步, 也可以运行python manage.py createsuperuser。当且仅当,你安装了auth模块。 5. 在urls.py中设置admin映射 # Include these import statements... from django.contrib import admin admin.autodiscover() # And include this URLpattern... urlpatterns = patterns('', # ... (r'^admin/', include(admin.site.urls)), # ... ) 6. 记住在你的模块中增添admin模板文件,可以复制django自带模板,注意在模块路径中添加 admin文件夹。 D:\Python27\Lib\site-packages\django\contrib\admin\templates\admin\base_site.html 7. 运行python manage.py runserver,网址中输入http://localhost:8000/admin/ 8. admin界面默认是显示英语,如果要显示你需要的语言: 在MIDDLEWARE_CLASSES属性中添加'django.middleware.locale.LocaleMiddleware',并确保它 排列在SessionMiddleware后面。重新刷新admin页面 在admin页面中管理models模块: 1. 需要在你的app下创建一个admin.py文件,并对你的model类进行注册 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) 2. 当你在project文件夹中添加新的文件时,需要重启server才能生效。 3. 如果想要你的admin界面中的添加数据功能生效,需要在MIDDLEWARE_CLASSES属性中添加 'django.contrib.messages.middleware.MessageMiddleware', 自定义admin模块的显示 1. 取消在添加数据时,每一个字段都需要输入的限制 在model类中做相应的修改就可以了: class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField(blank=True) 只需要在字段声明中,设置blank=True,默认是False 关于NULL与空字符串的区别 在数据库操作中,NULL和空字符串""是两上不同的概念,有些数据库类型即能接受NULL值,又能接受 空字符串类型,例如,varchar类型,到底什么时候使用这两者,久而久之,容易造成数据的不一致,为 了避免这样的情况,Django默认是把blank=True这样的字段,统一做为空字符串插入到数据库中。同 时,在创建数据表的时候,所有字段统一默认使用NOT NULL。 但是,当遇到时间,日期类型的时候,空字符串反而会出错。这个时候,又需要使用NULL,只需要在model 字段声明中加入: publication_date = models.DateField(blank=True, null=True) 一旦你加入null=True声明,这样就相当于改变了数据库表结构,类似SQL语句中的 alter table books_book modify publication_date date null; 然而之前说过,Django的python manage.py syncdb只能用表创建新表,不能更改表结构,所以这时你需要 在数据库中进行更新表结构操作。 在admin界面的编辑页面中,字段名字的显示是根据model类中的变量名来显示的,大写第一个字母,把下划线改 成空格显示出来。自定义显示可以使用verbose_name参数 email = models.EmailField(blank=True, verbose_name='e-mail') 使用ModelAdmin来管理model在admin页面中的显示 自定义chanle list界面ModelAdmin类似界面管理类,可以定义不同的显示细节。用法如下:fromdjango.contribimportadmin

frommysite.books.modelsimportPublisher, Author, Book

classAuthorAdmin(admin.ModelAdmin):

list_display=('first_name','last_name','email')#把字段信息全部显示出来 search_fields = ('first_name', 'last_name') #添加search bar,在指定的字段中search class BookAdmin(admin.ModelAdmin): list_display = ('title', 'publisher', 'publication_date') list_filter = ('publication_date',)#页面右边会出现相应的过滤器选项 date_hierarchy = 'publication_date' #只接受日期类型的字段名 ordering = ('-publication_date',) #排序

admin.site.register(Publisher)

admin.site.register(Author, AuthorAdmin)

admin.site.register(Book, BookAdmin) 自定义edit form界面fields = ('title', 'publisher', 'authors', 'publication_date')#edit界面就按这个顺序显示 还可以定义可编辑的字段 fields = ('title', 'authors', 'publisher') 这样Django会自动给publication_data设置为null,记得null=True设置为null值 当遇到many-to-many的多选的字段类型时,Django自动提供上图中的选择方式,不过还可以 选择用其它方式来进行多选,这种方式更加直观,不过只能作用于many-to-many的多选字段, 不能应用于foreignkey字段。 filter_horizontal = ('authors',) 当然也有filter_vertical... 对于ForeighKey字段,也有相应的设置,用来输入字段的ID,点击边上的 放大镜图标,也会弹出选择框 raw_id_fields = ('publisher',)

关于用户,组,权限

Django提供了很详细的权限设置方案。包括对每一张表的控制权限。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。