We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In books lies the soul of the whole past time.
Django Blog
Django Tips
Django Admin
settings.py
MIDDLEWARE_CLASSES
django.middleware.locale.LocaleMiddleware
django.contrib.sessions.middleware.SessionMiddleware
LANGUAGE_CODE = 'zh-Hans'
Django 1.9.6
Models
Admin
app
admin.py
# xxxx 是models.py中类的名字 admin.site.register(xxxx)
ForeignKey
一对多,多对一
多对多
models.py
class Post(models.Model): email = models.EmailField(blank=True)
blank=False
Null
null=True
class Post(models.Model): post_date = models.DateField(blank=True, null=True)
blank=True
blank
admin
verbose_name
class Post(models.Model): email = models.EmailField(blank=True, verbose_name='e=mail')
MangToManyField
ModelAdmin
Django
admin.ModelAdmin
from django.contrib import admin from .models import Post class PostAdmin(admin.ModelAdmin): list_display = ('title', 'author', 'publish') admin.site.register(Post, PostAdmin)
PostAdmin
list_display
search_fields
list_filter
date_hierarchy
date_hierarchy = 'publish'
ordering
Meta
fields
filter_horizontal
filter_vertical
raw_id_fields
ID
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Django
Django Blog
学习总结Django Tips
Django Admin
后台settings.py
中的MIDDLEWARE_CLASSES
内添加django.middleware.locale.LocaleMiddleware
django.contrib.sessions.middleware.SessionMiddleware
后面settings.py
中修改LANGUAGE_CODE = 'zh-Hans'
(这里Django 1.9.6
升级之后就修改了本地化中文的名字 )Models
添加入Admin
后台中app
文件夹下的admin.py
中添加Admin
后台中,外键ForeignKey
(一对多,多对一
)字段用一个选择框显示,多对多
则用多选择框显示Admin
后台管理字段时,有个限制,即每个字段必须填写,不能是可选填的情况,如果需要实现选填的话,需要修改models.py
中字段的定义models.py
中所有字段默认blank=False
,即不允许输入空值Null
就是唯一指定空值的方法,通过添加null=True
来允许一个字段可以为Null
blank=True
和null=True
的区别:Null
是针对数据库而言,如果null=True
表示数据库该字段可以为空值blank
是针对表单,如果blank=True
表示该表单可以不填,直观的表示就是admin
界面下 ,该字段名不是粗体Null
(空值) 和空的区别Null
是表示数据未知,不一定为空,也不一定等于空字符Admin
后台中的字段标签verbose_name
这个属性verbose_name
,但是这个参数必须放在第一位,这个简洁方法不适用MangToManyField
和ForeignKey
字段,因为它们第一个参数必须是模块类(也就是其他数据模型类的名字),这两种情况只能显式使用verbose_name
ModelAdmin
类Django
中提供了修改管理页面的方法,利用ModelAdmin
类,在admin.py
中,创建一个admin.ModelAdmin
子类PostAdmin
)list_display
是一个字段名组成的元组,用于上边按列显示,这些字段必须是数据模型中有的list_display
,还有以下几个属性search_fields
: 上边的快速查询栏list_filter
: 右边的按条件过滤选择date_hierarchy
date_hierarchy = 'publish'
它接受的是字符串,直接赋值日期字段,而不是上面的元组形式,它会显示在列表顶层(查询栏下面),逐层深入的导航条,从可用的年份开始,逐层细分至月至日ordering
: 改变默认的排序方式,类似之前的Meta
排序,多个优先第一个参数,然后优先后面fields
: 一般情况如果没有fields
属性,表单中的字段顺序是和数据模型中定义的顺序一样,使用fields
属性可以自定义顺序,fields
可以少写不想被他人编辑的字段,没有填写的字段就会被隐藏,防止被编辑修改filter_horizontal
: 针对多对多字段的属性,除了控件都是水平排列被选择,拥有十个以上选项的时候,使用它会比选框好很多filter_vertical
: 同上filter_horizontal
,也只能用于多对多字段,除了控件都是垂直排列raw_id_fields
: 这个属性就是针对外键ForeignKey
,原本是用下拉框来显示外键,但是一旦选项多就会导致变慢,采用这个属性,会将包含的选项展现成文本框,文本框内输入的是字段内容在数据库的ID
号,也可以通过右边的放大镜选择添加The text was updated successfully, but these errors were encountered: