`

Django1.10文档学习笔记五

 
阅读更多

18 静态文件

自定义应用的外观

样式表的存放路径polls/static/polls/css/style.css

li a{color:green;}

html页面中添加

{% load static%}
<linkrel="stylesheet"type="text/css"href="{%static 'polls/css/style.css'%}"/>

添加背景图片

新建polls/static/polls/images/目录,添加background.gif图片

修改样式表

body{background:white url("../images/background.gif")no-repeat center center fixed;
-webkit-background-size:cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}

19自定义admin站点

自定义表单

之前是通过在admin.py文件中注册

admin.site.register(models.Question)
admin.site.register(models.Choice)

如果想自定义该页面的外观和工作方式,需要在注册的时候设置

from django.contrib import admin
from polls importmodels

# Register your models here.

'''
模型管理类
'''
class
QuestionAdmin(admin.ModelAdmin):
#在页面显示的时候,让时间字段放到问题字段前
fields =['pub_date','question_text']

#注册时传递模型管理类
admin.site.register(models.Question,QuestionAdmin)
admin.site.register(models.Choice)

添加关系对象

在创建question对象的时候可以直接添加choice

#choice对象将在question管理页面进行编辑,默认可以添加三个

修改polls/admin.py

from django.contrib import admin
from .models importChoice, Question

# Register your models here.

'''
模型管理类
'''


# class QuestionAdmin(admin.ModelAdmin):
# 让时间字段放到问题字段前
# fields =['pub_date','question_text']

# 注册时传递模型管理类
# admin.site.register(models.Question,QuestionAdmin)
# admin.site.register(models.Choice)

#也可以用扁平化的显示方式TabularInline
class ChoiceInline(admin.StackedInline):


model = Choice
# 默认添加三个
extra = 3


class QuestionAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question_text']}),
('Date information', {'fields': ['pub_date'],'classes': ['collapse']}),
]
inlines = [ChoiceInline]


admin.site.register(Question, QuestionAdmin)

可以看到在add question页面中可以添加三个choice与之关联

Add another Choices 可以继续添加关联

也可以设置其为扁平化的显示方式:

Polls/admin.py

#扁平化的显示方式
class ChoiceInline(admin.TabularInline):

自定义admin change list

也就是看到的问题列表页,可以设置其显示的内容,将对象的所有属性都显示出来

class QuestionAdmin(admin.ModelAdmin):
#设置change_list要显示的内容
list_display = ('question_text','pub_date', 'was_published_recently')

fieldsets = [
(None, {'fields': ['question_text']}),
('Date information', {'fields': ['pub_date'],'classes': ['collapse']}),
]
inlines = [ChoiceInline]

实现单击列标题进行排序

was_published_recently默认是不能排序,修改其显示方式

Model.py中添加如下

was_published_recently.admin_order_field ='pub_date'
was_published_recently.boolean =True
was_published_recently.short_description ='Published recently?'

添加过滤选择框

admin.py中添加

list_filter = ['pub_date']

添加搜索功能:

Admin.py 中添加

search_fields = ['question_text']

定制admin外观

Manage.py 文件的同级目录下有一个templates目录,创建一个admin目录

修改mysite/settings.py文件

TEMPLATES = [
{
...
'DIRS'
: [os.path.join(BASE_DIR,'templates')],
...

}]

将源码目录下的django/contrib/admin/templates/admin下的base_site.html

放到刚才建好的admin目录下

{% extends "admin/base.html"%}

{% block title%}**站点管理{% endblock%}

{% block branding%}
<h1id="site-name">
<ahref="{%url 'admin:index'%}">
{# {{ site_header|default:_('JKX administration') }} #}
{#修改应用标题名称 #}
**管理控制台
</a>
</h1>
{% endblock %}

{% block nav-global%}{% endblock %}

定制应用模版

定制首页同上

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics