使用Django的admin功能管理数据_vscode

本文详细介绍了如何在Django中配置管理员界面,包括中文界面支持、模型数据操作、ModelAdmin的高级特性(如搜索和过滤、一对多表编辑等)、以及AdminSite模板的定制。作者还探讨了如何使用ModelAdmin的属性和方法,以及如何处理CSS和JS资产。
摘要由CSDN通过智能技术生成

之前的文章 项目 hello_django, app名 hello,已有的model LogMessage:

https://blog.csdn.net/weixin_44741835/article/details/136202771?spm=1001.2014.3001.5502

参考得到电子书:第八章。

https://www.dedao.cn/ebook/reader?id=rEQKv6PKN7rEo2Gxg96ZjApyMvQVlw5q1rwXb14PJzDkYaReqd8n5LOmB8d7egBx

目标,可以通过admin输入信息(家庭图书信息,尽量能处理图片)

深入理解admin

8.1.1 使用中文界面

在settings.py文件中设置Middleware。

运行程序后结果:

报错了,应该是新版本不支持这种方法了。 只能使用英文界面了。 (需要查询Django的官方文档来改一下了。Django documentation | Django documentation | Django)。新增的语句先注释掉。

8.1.2 应用后端管理

1. 应用模型注册

已经创建的应用名为hello,在路径下同步产生admin.py文件。

第一步:

hello路径下的打开admin.py文件。做如下修改:

第二步:检查结果

2.模型数据后端操作

完成注册后,就可以在Admin中对模型数据进行增,删,改操作了。标准 操作。

3.后端管理功能完善

(1)提供中文应用名

应用路径下的__init__.py文件:

改过之后没有效果。程序是执行了,但是无效。<需要再看>

(2)模型名改为中文

修改model.py文件,增加内容。更改成功。

(3)显示指定字段内容:hello应用中的admin.py文件进行修改:

在Admin字段显示的内容变化,为Message 和时间两个字段。结果如图:

(4)更改后端管理系统显示名称

修改admin.py 文件,增加两句描述:

修改后效果:

8.2 ModelAdmin

Django提供了功能更加强大的ModelAdmin类。 ModelAdmin类支持非常多的属性和方法,为后端管理系统提供了强大的二次开发能力。可以通过右键的defination的方式查看源代码。

源代码显示如下图

8.2.1 ModelAdmin属性

8.2.1.1 字段查找、过滤功能

(1)search_fields属性

(2)list_filter属性

8.2.1.2 一对多表编辑功能

8.2.2 ModelAdmin方法

1. Save_mode()方法

2.get_ordering()方法

3.get_queryset()方法

4.message_user(request,level,message,extra_tags='',fail_silently=False)方法

8.2.3 ModelAdmin资产

资产主要指CSS,JS文件。ModelAdmin中的Media类可实现对指定CSS,JS的设置。

1.指定CSS文件进行设置

2.对指定JS文件进行设置

8.3 AdminSite模板

已经提供大量默认的界面显示模板,也可以对现有模板进行定制。

8.3.1使用Admin模板原理

模板位置:django\contrib\admin\templates\admin(Django安装位置在Python的安装路径Lib\site-packages\下)

不要直接修改模板。

1.重写模板的环境要求 配置相关目录

2.模板识别过程

8.3.2 定制Admin模板

8.3.1 

adminSite模板

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Djangoadmin.py 中,如果要在 list_display 中显示一个外键的相关字段,可以使用双下划线语法。例如,如果有一个名为 Book 的模型,并且它有一个外键字段 author,你可以这样在 BookAdmin 中的 list_display 中显示作者的名字: ```python from django.contrib import admin from .models import Book class BookAdmin(admin.ModelAdmin): list_display = ('title', 'author__name') admin.site.register(Book, BookAdmin) ``` 其中,'author__name' 表示要显示作者的名字,其中的双下划线 '__' 表示要通过外键访问作者模型的 name 字段。需要注意的是,如果外键是多对多关系,则需要使用 'related_name' 来设置反向关联的名称,例如: ```python from django.db import models class Author(models.Model): name = models.CharField(max_length=50) class Book(models.Model): title = models.CharField(max_length=100) authors = models.ManyToManyField(Author, related_name='books') ``` 在 BookAdmin 中,可以这样显示作者们的名字: ```python class BookAdmin(admin.ModelAdmin): def authors_name(self, obj): return ', '.join([a.name for a in obj.authors.all()]) authors_name.short_description = 'Authors' list_display = ('title', 'authors_name') ``` 其中,'authors_name' 是一个自定义的方法,用来返回作者们的名字,然后在 list_display 中显示。需要注意的是,自定义的方法需要设置一个短描述 'short_description',用来在列表头部显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值