- Django基础概念
- Django - 首页
- Django - 基础
- Django - 概述
- Django - 环境搭建
- Django - 创建项目
- Django - 应用生命周期
- Django - 创建视图
- Django - URL映射
- Django - 首页
- Django - 模板系统
- Django - MVT
- Django - 添加主模板
- Django Admin
- Django Admin - 界面
- Django Admin - 创建用户
- Django Admin - 包含模型
- Django Admin – 设置显示字段
- Django Admin - 更新对象
- Django 模型
- Django - 模型
- Django - 插入数据
- Django - 更新数据
- Django - 删除数据
- Django - 更新模型
- Django 静态文件
- Django - 添加静态文件
- Django - 添加CSS文件
- Django 高级
- Django - 404页面未找到
- Django - 页面重定向
- Django - 发送邮件
- Django - 通用视图
- Django - 表单处理
- Django - 文件上传
- Django - Apache设置
- Django - Cookie处理
- Django - Session
- Django - 缓存
- Django - 评论
- Django - RSS
- Django - AJAX
- Django 有用资源
- Django - 快速指南
- Django - 有用资源
- Django - 讨论
Django Admin – 设置显示字段
当模型注册到Django的Admin站点时,点击模型名称会显示其对象的列表。
下图显示了Employees模型中对象的列表:
但是,上面的页面显示的对象形式为Employee object(1),并没有显示name或contact等属性。为了使对象描述更友好,我们需要重写employee模型类中的__str__()方法。
为了给出其对象的替代字符串表示,employee类被改写如下:
from django.db import models class Employee(models.Model): empno = models.CharField(max_length=20) empname = models.CharField(max_length=100) contact = models.CharField(max_length=15) salary = models.IntegerField() joined_date = models.DateField(null=True) class Meta: db_table = "employee" def __str__(self): return "Name: {}, Contact: {}".format(self.empname, self.contact)
对模型定义进行这些更改,然后刷新admin站点的首页(如果Django服务器尚未运行,请启动它)。
点击MYAPP下的Employees模型以显示employee对象的详细信息:
如果点击任何对象详情,则会显示一个显示对象属性的表单,您可以在此处更新对象或删除对象。
您可以使用admin.ModelAdmin对象的“list_display”属性自定义“更改列表页面”,该属性指定在更改列表中显示哪些列。
ModelAdmin类是在admin界面中模型的表示。通常,这些存储在应用程序中的名为admin.py的文件中。
通过继承ModelAdmin类定义EmployeeAdmin类。将list_display属性设置为要显示的字段的元组。
from django.contrib import admin # Register your models here. from .models import Employee class EmployeeAdmin(admin.ModelAdmin): list_display = ("empname", "contact", "joined_date")
注册EmployeeAdmin类如下:
admin.site.register(Employee, EmployeeAdmin)
您也可以使用@admin.register()装饰器注册模型:
from django.contrib import admin # Register your models here. from .models import Employee @admin.register(Employee) class EmployeeAdmin(admin.ModelAdmin): list_display = ("empname", "contact", "joined_date")
保存上述更改并刷新Admin站点以显示Employee对象的列表:
您还可以为列表页面提供搜索功能。在EmployeeAdmin类中添加search_fields属性:
@admin.register(Employee) class EmployeeAdmin(admin.ModelAdmin): list_display = ("empname", "contact", "joined_date") search_fields = ("empname__startswith", )
现在列表页面顶部显示了一个搜索字段。搜索基于员工姓名。__startswith修饰符将搜索限制为以搜索参数开头的名称。
因此,Django Admin界面是完全可定制的。您可以通过在admin类中提供fields属性来设置在更新表单中提供的字段。