Django关于站点管理Admin Site的常见问题解决方法

1. 改变django默认语言的方法?

仅需添加’django.middleware.locale.LocaleMiddlewar’到 MIDDLEWARE_CLASSES设置中,并确保它在’django.contrib.sessions.middleware.SessionMiddleware’* 之后* 。

2. 怎样将已有models加入到admin管理中?

本问题用实例演示,假如有个app叫做books,该app包里包含3个模块Publisher、Author和Book,以下是将该三个模块添加到admin管理中的步骤:

books 目录下( mysite/books ),创建一个文件: admin.py

在admin.py中输入以下代码

from django.contrib import admin

from mysite.books.models import Publisher, Author, Book

#以下3句,实现将模块添加到后台管理

admin.site.register(Publisher)

admin.site.register(Author)

admin.site.register(Book)

3) 重启服务器,刷新后台界面(比如http://127.0.0.1:8000/admin)发现添加成功

3. 为什么用admin.site.register(x)注册了x模块,后台却无法显示?

admin后台管理模块,第一步是执行autodiscover函数,该函数是根据settings.INSTALLED_APPS来逐个处理每个模块的,注册了模块却无法生效,肯定是因为没有将模块添加到配置文件的INSTALLED_APPS中。

以下是autodiscover关于注册模块的部分代码

 

4. 为什么我没有写admin.py,后台却默认显示了Auth的Groups和Users两个模块?

这是因为:

1) 我们在INSTALLED_APPS增加了’django.contrib.auth’选项,admin.autodiscover会去该包查找admin.py

2) 在django的源码包django.contrib.auth里面,我们找到了admin.py,并且里面刚好注册了Groups和Users两个模块

看代码:

 

 

又比如后台默认页显示了sites模块,找到contrib.sites,也可以发现admin.py,以下是它的内容:

 

其实不难发现,contrib里面的包,大部分都自含admin.py文件,这也就是说,只要在INSTALLED_APPS中添加了该目录中的某个包,后台就能够对它进行管理了。

5. 怎样让某个表单字段是可选填写的?

想要哪个字段是可选填写的,就在该Model的该字段的选项中(括号内)加上blank=True即可,如下所示:

 

所有的字段,默认blank=false,所以都是必填不能为空的

6. 设置日期型和数字型字段可选的方法?

Django生成CREATE TABLE语句自动为每个字段显式加上NOT NULL,在管理工具中,如果你留空一个字符型字段,它会为此插入一个空字符串(而* 不是*NULL),但是,其它数据类型有例外:日期型、时间型和数字型字段不接受空字符串。

如果你想允许一个日期型(DateField、TimeField、DateTimeField)或数字型(IntegerField、DecimalField、FloatField)字段为空,你需要使用null=True * 和* blank=True。

 

因为null=True改变了数据的语义,即改变了CREATE TABLE语句,把publication_date字段上的NOT NULL删除了。 要完成这些改动,我们还需要更新数据库。

7. 怎样更改表单中字段的说明文字?

在编辑页面中,每个字段的标签都是从模块的字段名称生成的,然而,字段名称并不总是贴切的。有些情况下,你可能想自定义一个标签。 你只需在模块中指定verbose_name。

 

8. ModelAdmin类是干什么的?

像blank=True、null=True和verbose_name修改其实是模块级别,而不是管理级别的。 也就是说,这些修改实质上是构成模块的一部分,并且正好被管理工具使用,而不是专门针对管理工具的。

Django还提供了大量选项让你针对特别的模块自定义管理工具。 这些选项都在ModelAdmin classes里面,这些类包含了管理工具中针对特别模块的配置。

9. 怎样自定义后台管理的列表页面?

看代码和解释:

 

10. 怎样自定义编辑后台管理的表单页面?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁学Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值