Django(part2)
- admin site:django自带了admin site,我们需要创建能访问site的用户
#以交互的方式创建超级用户
manage.py createsuperuser - 如果要把model加到admin site,需要在polls/admin.py中执行如下命令:
from django.contrib import admin
from polls.models import Question,Choice admin.site.register(Question)
admin.site.register(Choice)然后可以在site中看到polls的model
- 打开admin site的model,会有一个默认form显示model的成员,
如果想自定义form可以使用如下代码:#polls/admin.py
from django.contrib import admin
from polls.models import Question class QuestionAdmin(admin.ModelAdmin):
fields = ['pub_date', 'question_text']
admin.site.register(Question, QuestionAdmin)form的布局将会变为:
如果有许多fields,可以将form按field set进行划分,collapse指定这个fieldset初始是收缩的,点show可以展开,如下图Text是一个fieldset,Date information是一个fieldset from django.contrib import admin
from polls.models import Question class QuestionAdmin(admin.ModelAdmin):
fieldsets = [
('Text', {'fields': ['question_text']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]- 添加关联对象,如下图,
django知道ForeignKey对象应该从select box中选择,本例中时选择Question model,如果想连续添加多个Choice对象,可以更改admin.py代码,#polls/admin.py from django.contrib import admin
from polls.models import Choice, Question class ChoiceInline(admin.StackedInline):
model = Choice
#extra 是添加的数目
extra = 3 class QuestionAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question_text']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
#这告诉django,Choice model在Question的admin page编辑,添加3个Choice对象
inlines = [ChoiceInline]
admin.site.register(Question, QuestionAdmin)这样比较占页面空间,
可以点”Add another Choice”继续添加Choice,新添加的Choice可以删掉,但初始的3个slot不能删。为了节省空间可以使用下列显示方式:#使ChoiceInline 继承自admin.TabularInline,其他代码不变
class ChoiceInline(admin.TabularInline):
... - 还可以指定其他属性增加admin page的功能,如:
#指定model的列名,也就是属性名
list_display = ('question_text', 'pub_date')
#指定用于filter的列
list_filter = ['pub_date']
#添加search box,使用question_text属性匹配
search_fields = ['question_text']
Django(part2)的更多相关文章
- “全能”选手—Django 1.10文档中文版Part2
第一部分传送门 第三部分传送门 第四部分传送门 3.2 模型和数据库Models and databases 3.2.2 查询操作making queries 3.3.8 会话sessions 目录 ...
- 实战Django:官方实例Part2
我们接着Part1部分往下讲.我们在part1中启动服务器后,并没有在管理页面中发现新添加的Polls应用,怎么办捏? 7.在管理界面中显示Question 只要注册一下这个应用就可以了.编辑poll ...
- django入门-模型-part2
尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6511177.html 完全翻译自官方文档 https://docs.djangoproje ...
- Django 1.10文档中文版Part2
目录 2.5 第一个Django app,Part 3:视图和模板 2.5.1 概览 2.5.2 编写更多的视图 2.5.3 编写能实际干点活的视图 2.5.4 404错误 2.5.5 使用模板系统 ...
- Django——如何在Django模板中注入全局变量?——part2
模版中的变量由context中的值来替换,如果在多个页面模版中含有相同的变量,比如:每个页面都需要{{user}},笨办法就是在每个页面的请求视图中都把user放到context中. from d ...
- django with mysql (part-2)
step01: write a ( views.py ) file vim views.py Insert the below code : step02: configure your ( urls ...
- 如何让django方法自动地定期执行
实现思路:1.首先把需要自动执行的django method写成django command2.将自己定义的django command添加到cron中使用cron服务实现定期执行 Part1 在dj ...
- 实战Django:简易博客Part1
舍得学习新技能的时候,通常不喜欢傻读书--捧着一本阐述该项技能的书籍,然后傻看,一路看下来,脑子里塞满了新的概念.知识点,头是越来越大,但技能却几乎没掌握半分. 多年来,舍得养成了用做实例来学习新技能 ...
- 实战Django:官方实例Part1
[写在前面] 撰写这个实战系列的Django文章,是很久之前就有的想法,问题是手头实例太少,一旦开讲,恐有"无米下锅"之忧. 随着对Django学习的深入,渐渐有了些心得,把这些心 ...
随机推荐
- EF Code First 使用(一)
第一步:创建MVC5项目,添加数据库实体,建立上下文对象. 第二步:创建数据库和添加数据
- 获得IP地址中文
string ipFilePath = @"~/App_Data/QQWry.dat"; QQWryLocator QQWry = new QQWryLocator(Server. ...
- Java 多线程(二)synchronized和volatile
脏读: 脏读指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据.总的来说取到的数据是其实是被更改过的,但还没有保存到数 ...
- ssh: connect to host port 22: Connection refused
配置Linux的互信,互信完成后,连接需要+端口才可以已经将端口修改为7777,但依旧走的是默认的22端口修改方式:[root@yoon ssh]# vi /etc/servicesssh ...
- 【原创】spring中的事务传播特性
关于spring的传播特性,我对其进行了详细的叙述了下: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. 比如方法A调用方法B,如果方法 ...
- ZOJ 3019 Puzzle
解题思路:给出两个数列an,bn,其中an,bn中元素的顺序可以任意改变,求an,bn的LCS 因为数列中的元素可以按任意顺序排列,所以只需要求出an,bn中的元素有多少个是相同的即可. 反思:一开始 ...
- Thingworx新建Thing的数据库表变化
为了在Thingworx的基础上建立统一的可视化平台,并且对软件产品具有自主控制权,不依赖于Thingworx软件(防止因Thingworx的升级.Bug导致的自主扩展功能受制),所以最近在研究Thi ...
- html格式的文档转成word下载
当我们前端使用ueditor插件来让用户输入数据,保存至数据库.在另一个地方需要打印用户输入的内容的时候可以用到.因为要将ueditor带格式保存下来保存的就是html格式的内容,后台转化如下: @R ...
- Django Views Decorator
Django的试图函数的装饰器主要有: HTTP请求方法 条件视图处理 GZip压缩 改变页眉 缓存 官网文档 HTTP请求方法 该装饰器是设置允许访问HTTP协议的方法,装饰器在django.vie ...
- 对于 wepy 不是内部或外部命令 -- 的解决办法
闲来没事继续研究自己之前一直未解决的问题, 就是自己笔记本安装wepy-cli,一直提示"wepy 不是内部或外部命令". 因为公司里面用的是这个框架, 想着自己在家没事的时候去 ...