Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制
#创建超级用户
python manage.py createsuperuser
注意密码需要8位,数字和字母组合
存储在auth_user表中
一、 基本设置
1、应用注册
若要把app应用显示在后台管理中,需要在admin.py中注册。这个注册有两种方式,我比较喜欢用装饰器的方式。
先看看普通注册方法。打开admin.py文件,如下代码:
1 2 3 4 5 6 7 8 9 |
from django.contrib import admin from blog.models import Blog #Blog模型的管理器 class BlogAdmin(admin.ModelAdmin): list_display=('id', 'caption', 'author', 'publish_time') #在admin中注册绑定 admin.site.register(Blog, BlogAdmin) |
上面方法是将管理器和注册语句分开。有时容易忘记写注册语句,或者模型很多,不容易对应。
还有一种方式是用装饰器,该方法是Django1.7的版本新增的功能:
1 2 3 4 5 6 7 |
from django.contrib import admin from blog.models import Blog #Blog模型的管理器 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin): list_display=('id', 'caption', 'author', 'publish_time') |
该方式比较方便明显,推荐用这种方式。
2、admin界面汉化
默认admin后台管理界面是英文的,对英语盲来说用起来不方便。可以在settings.py中设置:
- LANGUAGE_CODE = 'zh-CN'
- TIME_ZONE = 'Asia/Shanghai'
1.8版本之后的language code设置不同:
- LANGUAGE_CODE = 'zh-hans'
- TIME_ZONE = 'Asia/Shanghai'
admin.py
from django.contrib import admin
from supermarket.models import Product
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display=('id', 'name', 'price')
#list_per_page设置每页显示多少条记录,默认是100条
list_per_page = 50
#ordering设置默认排序字段,负号表示降序排序
ordering = ('-created_time',)
#list_editable 设置默认可编辑字段,在列表里就可以编辑
list_editable = ['title', 'user']
#设置哪些字段可以点击进入编辑界面
list_display_links = ('id', 'title')
#设置查找字段
search_fields=['title']
js原生语法获取checkbox值
var _items = [];
var items = document.getElementsByName("itemch_trend”);
for(var i=0;i<items.length;i++) {
if (items[i].checked){
_items.push(items[i].value);
}
}
控制全选或者反选
<input type="checkbox" onclick="checkAll(this, 'NewMainVideoCheckbox1')">
function checkAll(e, name) {
var items = document.getElementsByName(name);
for (var i = 0; i < items.length; i++) {
items[i].checked = e.checked; 或者使用true/false
}
}
python3 eval方法
eval(source[, globals[, locals]])
作用:
将字符串str当成有效的表达式来求值并返回计算结果。参数:source:一个Python表达式或函数compile()返回的代码对象;globals:可选。必须是dictionary;locals:可选。任意map对象。