Django1.10文档学习笔记五

亡梦爱人 提交于 2020-02-25 11:05:07

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 %}

 

定制应用模版

 

定制首页同上

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!