
Django Admin定制:显示字段与模型优化实践
172KB |
更新于2024-09-07
| 191 浏览量 | 举报
收藏
"django admin后管定制-显示字段的实例"
在Django框架中,内置的admin后台管理系统提供了方便的数据管理功能。然而,如果只是简单地注册模型到admin,其默认展示的信息可能并不全面,通常只显示模型对象的类型(如ModelObject)。为了使admin界面更加友好和实用,我们需要对其进行定制,特别是对于显示字段的调整。本实例将介绍如何在Django admin中自定义显示字段,以便更直观地查看和管理数据。
首先,我们来看一个具体的需求:在admin后台中,不仅需要看到模型的ID,还希望能显示其他关键信息,如承销商的名称、简称和电话。默认情况下,这些信息并不会直接显示,需要点击每个记录才能查看。为了解决这个问题,我们可以创建一个自定义的admin模型类,并在其中定义`list_display`、`list_display_links`等属性。
1. 显示关键信息:
定义一个名为`UnderwriterAdmin`的`ModelAdmin`子类,将需要在列表视图中显示的字段(如id、underwriter、shortname和telephone)添加到`list_display`列表中。这样,当我们在admin界面查看Underwriter模型时,就会看到这些字段的数据。
2. 配置:
在`admin.py`文件中,我们需要导入`Underwriter`模型和`admin.ModelAdmin`,然后创建`UnderwriterAdmin`类并进行如下配置:
```python
from django.contrib import admin
from .models import Underwriter
class UnderwriterAdmin(admin.ModelAdmin):
list_display = ('id', 'underwriter', 'shortname', 'telephone')
list_display_links = ('id', 'underwriter')
# 注册Underwriter模型到admin,使用UnderwriterAdmin作为管理器
admin.site.register(Underwriter, UnderwriterAdmin)
```
3. 答疑:
当我们没有自定义`__unicode__`或`__str__`方法时,Django会默认显示模型对象的内存地址,即以`modelobject`的形式呈现。为了改变这一情况,我们需要在模型类中定义`__unicode__`方法(在Python 3中是`__str__`),返回一个代表模型实例的字符串。例如,返回承销商的`underwriter`字段值:
```python
class Underwriter(models.Model):
underwriter = models.CharField(max_length=50)
shortname = models.CharField(max_length=50)
telephone = models.CharField(max_length=50)
email = models.CharField(max_length=50, null=True, blank=True)
def __unicode__(self): # 或者在Python 3中使用 __str__
return self.underwriter
```
通过以上定制,我们可以在admin后台看到更直观、易读的Underwriter模型列表,提高了工作效率。此外,Django还允许我们进一步定制admin界面,比如自定义搜索字段、排序、过滤器等,以满足更多复杂的管理需求。
补充知识:在Django中,如果需要自定义用户表,可以创建一个继承自`AbstractBaseUser`的模型,然后替换默认的`User`模型。同时,通过admin管理用户表,可以轻松地进行用户的创建、编辑和删除等操作,使得数据库管理变得更加便捷。
相关推荐










weixin_38543950
- 粉丝: 6
最新资源
- 模拟操作系统页面存储管理与调度算法设计
- UCOS2.52源码分析及学习方法指南
- DsoFramer_V2.3.0.1:支持Office2007的OCX编译源码发布
- C#程序定时重启解决方案及源码分享
- 解析mfc100u.dll系统文件及其修复工具
- Delphi实现串口通信的实用技巧
- 探索Hibernate 4.1.9最新特性及下载指南
- Java局域网聊天室系统源码解析
- SpeedyCGI 2.22版本发布,快来下载体验极致性能
- PC端多串口多线程温度模拟调试工具
- 利用ArcGIS Add-in实现图符号计算功能
- Android随手记项目:源码记录与实现解析
- 利用jQuery实现强大扩展性的在线Office文档编辑
- 神经网络车牌字符识别教程
- C#编程:打造实用软键盘技巧指南
- Java桌面文件自动备份解决方案
- 黑马程序员.NET基础测试题及解答思路
- LPC1765与VS8053实现音频PCM/ADPCM压缩技术
- MSP430 1系列示例代码详解与参考应用
- 原创魔塔游戏素材包,游戏开发必备下载
- 《Head First 设计模式》完整Java源码解析
- 企业宣传网站源码:大气与功能齐备的解决方案
- 深入解析哈夫曼树的构造及其编码解码原理
- WPF实现多行表头技术的探索与实践