美文网首页
Django -- Polls - Part 7

Django -- Polls - Part 7

作者: liaozb1996 | 来源:发表于2018-03-21 23:45 被阅读0次

定制 Django Admin

# 类
admin.ModelAdmin
admin.StackedInine
admin.TabularInline

# Model Edit Form
## ModelAdmin
fields = []
fieldsets = [('title', {'fields': [])]
inlines
## Change List
search_fields
list_display
list_filter
# Inline 属性
model 
extra

# 方法属性
field.admin_order_filed # 排序
field.boolean
field.short_description # 标题

步骤:

  • 创建 admin.ModelAdmin
  • 将子类作为 admin.site.register() 的第二个参数

Model

Model 中 Fields 显示的顺序:fields

# polls/admin.py

from django.contrib import admin
from .models import Question

class QuestionAdmin(admin.ModelAdmin):
    fields = ['pub_date', 'question_text']

admin.site.register(Question, QuestionAdmin)

fieldsets:

# polls/admin.py
class QuestionAdmin(admin.ModelAdmin):
    fieldsets = [
    ('Date information', {'fields': ['pub_date']}), # ('title', {'fileds': []})
    (None, {'fields': ['question_text']}),
    ]
fieldsets

关联外键

Inline

# polls/admin.py

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

class ChoiceInline(admin.StackedInline):
    model = Choice
    extra = 3

class QuestionAdmin(admin.ModelAdmin):
    fieldsets = [
    ('Date information', {'fields': ['pub_date']}), # (title, {'fileds': []})
    (None, {'fields': ['question_text']}),
    ]

    inlines = [ChoiceInline]

admin.site.register(Question, QuestionAdmin)

紧凑的表格形式 TabularInline

# polls/admin.py
class ChoiceInline(admin.TabularInline):
    model = Choice
    extra = 3
TabularInine

Change List

# polls/admin.py
class QuestionAdmin(admin.ModelAdmin):
    list_display = ('question_text', 'pub_date', 'was_published_recently')
list_display
Model

was_published_recently 添加属性

# polls/models.py
class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def was_published_recently(self):
         return timezone.now() - self.pub_date < datetime.timedelta(days=1)
    was_published_recently.admin_order_field = 'pub_date'
    was_published_recently.boolean = True
    was_published_recently.short_description = "Published recently ?"
属性

list_filter

class QuestionAdmin(admin.ModelAdmin):
    list_filter = ['pub_date']

search_fields

class QuestionAdmin(admin.ModelAdmin):
    search_fields = ['question_text']  # 在数据库执行 LIKE

相关文章

  • Django -- Polls - Part 7

    定制 Django Admin 步骤: 创建 admin.ModelAdmin 将子类作为 admin.site....

  • Django -- Polls - Part 2

    数据库配置 创建 Model Django Admin 本节包含的内容较多:Polls - Part 2 数据库配...

  • Django -- Polls - Part 3

    URL dispatcher View 视图 通过Python函数(或一个类的方法)来生成一个页面;可能会涉及通过...

  • Django -- Polls - Part 4

    Form 如果是从服务器获取信息,使用 GET;如果是要从服务器修改信息,使用 POST;发生敏感信息,使用 PO...

  • Django -- Polls - Part 1

    创建项目结构 创建 APP -- Polls 结构 创建视图 View 配置/声明 URL -- URLconf ...

  • Django -- Polls - Part 6

    Django 渲染一个页面所需的图片,CSS, Javascript 称为静态文件 CSS 在APP下创建目录:p...

  • Django study

    [TOC] Django study creating a project 调试 demo-the Polls a...

  • django入门基础指令

    安装django指令 新建项目(名称为mysite) 运行django项目 创建应用(名称为polls) 为应用生...

  • 第一个Django App(六)

    静态文件 django.contrib.staticfiles 定制app的外观 在polls下创建static目...

  • Django学习(3)--管理站点

    编辑polls下面的admin.py进行站点管理。 加入了Question: from django.contri...

网友评论

      本文标题:Django -- Polls - Part 7

      本文链接:https://www.haomeiwen.com/subject/ttnnqftx.html