Django-后台
来源:互联网 发布:防火墙软件测试 编辑:程序博客网 时间:2024/05/16 17:01
Django后台通过编辑每个app的admin.py文件实现。
1.新建admin项目
django-admin startproject admin
2.新建app
#进入admin文件夹cd admin#创建app:blogpython manage.py startapp blog
将blog加入settings.py文件。
3.新建model
在models.py中,建立Article类
# coding:utf-8from django.db import models class Article(models.Model): title = models.CharField(u'标题', max_length=256) content = models.TextField(u'内容') pub_date = models.DateTimeField(u'发表时间', auto_now_add=True, editable = True) update_time = models.DateTimeField(u'更新时间',auto_now=True, null=True) def __unicode__(self):# 在Python3中用 __str__ 代替 __unicode__ return self.title
4.同步数据表
# 进入包含有 manage.py 的文件夹python manage.py makemigrationspython manage.py migrate
建立了Article的数据表。
创建管理员
python manage.py createsuperuser
5.注册模型
修改admin.py文件
from django.contrib import adminfrom .models import Articleadmin.site.register(Article)
6.打开服务器
python manage.py runserver
访问 http://localhost:8000/admin/, 输入设定的帐号和密码。可以在后天增加
编辑Article内容。
7.在列表显示相关内容
在admin.py中,修改如下
from django.contrib import adminfrom .models import Articleclass ArticleAdmin(admin.ModelAdmin): list_display = ('title','pub_date','update_time',)admin.site.register(Article,ArticleAdmin)
list_display就是配置要显示的字段的。
显示费字段内容,或字段相关的内容,比如,对于Person类
class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) def my_property(self): return self.first_name + ' ' + self.last_name my_property.short_description = "Full name of the person" full_name = property(my_property)
property将方法my_property转变为属性字段
在admin.py中
from django.contrib import adminfrom .models import Article, Person class ArticleAdmin(admin.ModelAdmin): list_display = ('title', 'pub_date', 'update_time',) class PersonAdmin(admin.ModelAdmin): list_display = ('full_name',)admin.site.register(Article, ArticleAdmin)admin.site.register(Person, PersonAdmin)
如果修改了models.py中的字段,就要更改数据表,
python manage.py makemigrationspython manage.py migrate
8.定制搜索功能
在admin.py中修改如下
class PersonAdmin(admin.ModelAdmin): list_display = ('full_name') search_fields = ('full_name',) def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super(PersonAdmin, self).get_search_results(request, queryset, search_term) try: search_term_as_int = int(search_term) queryset |= self.model.objects.filter(age=search_term_as_int) except: pass return queryset, use_distinct
queryset是默认的结果,search_term是搜索关键词
9.其他功能
Django还有很多后台功能,比如
1. 定制加载的列表, 根据不同的人显示不同的内容列表,比如输入员只能看见自己输入的,审核员能看到所有的草稿,这时候就需要重写get_queryset方法
2. 修改保存时的一些操作,可以检查用户,保存的内容等,比如保存时加上添加人
3. 删除时做一些处理
…
参考:
自强学堂
官方文档
0 0
- Django后台
- Django后台
- Django-后台
- Django 后台
- Django后台管理
- Django(三)后台
- django后台入门--引言
- 拓展django后台
- django后台汉化
- django后台设置
- 搭建django后台环境
- django 后台服务
- DJANGO ADMIN后台设置
- [django]django后台css样式丢失
- 使用django做管理后台
- django&python&linux后台运行
- Django编写后台报错
- django后台做了些森么
- C++ 堆栈内存相关知识
- 使用Volley框架请求php出现com.android.volley.TimeoutError错误
- spring源码和jar的下载
- PDF拆分/合并
- 服务器被攻击检查问题一般流程
- Django-后台
- 心心相印
- ibatis与spring整合
- jquery文件上传插件uploadify 讲解
- split slice splice substring subst 区别
- 一亿用户增长背后的架构秘密 之 腾讯微信技术架构
- 新建Eclipse工作空间,复制原有的配置(转)
- 企业移动信息化解决方案:移动报销
- java集合架构(1)