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 %}
定制应用模版
定制首页同上
来源:https://www.cnblogs.com/retacn-yue/p/6194184.html