FAQ:管理

无法登录。当我输入有效的用户名和密码后,页面再跳转到登录页面,没有显示任何错误信息。

登陆 cookie 没有被正确设置,这是因为由 Django 发出的 cookie 中的域名和浏览器页面的域名不匹配。可以通过修改设置中的 SESSION_COOKIE_DOMAIN 选项来匹配你的域名。例如,如果你需要在浏览器中访问 "https://www.example.com/admin/",设置 SESSION_COOKIE_DOMAIN = 'www.example.com'

我无法登陆。当我输入有效的用户名和密码后,它又跳转到了登录界面,并且显示一个“请输入正确的用户名和密码”的错误。

如果你确定你的用户名和密码都是对的,请检查你的用户账户中的 is_activeis_staff 被设为 True。管理员页面只允许这两项同时被设为 True 的用户访问。

在管理面板中,如何将字段的值自动设置为最后编辑它的用户?

ModelAdmin 类提供了自定义钩子(hooks),它允许你使用请求中的详细数据来修改一个已保存的对象。你可以从request中取出当前的用户对象,然后通过自定义 save_model() 钩子(hook)来更新一个反映用户编辑了的对象。参见 the documentation on ModelAdmin methods 中的示例。

我们如何设定管理权限,以便对象只能由创建它们的用户进行编辑?

ModelAdmin 类也提供了自定义沟子(Hook)来控制管理面板中的对象是否可见以及可修改。使用相同的技巧从 request 中提取出当前用户对象,然后自定义 get_queryset()has_change_permission() 来控制管理面板中的对象是否可见以及可修改。

管理界面的 CSS 和图片在开发模式下正常加载,但是在使用 mod_wsgi 进行部署的情况下却无法进行加载?

请仔细阅读“如何利用 mod_wsgi 部署 Django”文档中的 部署 admin 模块的静态文件

我的“list_filter”包含一个 ManyToManyField (多对多字段),但过滤器不显示

如果相关联对象少于 2 个,Django 则不会显示 ManyToManyField(多对多字段) 的过滤器

例如,如果您的 list_filter 包含 sites 1,并且你的数据库中只有一个站点,则不会显示“站点”过滤器。在这种情况下,按网站过滤将毫无意义。

有些对象没有在管理中出现。

不一致的行计数可能由缺少外键值或由将外键字段错误地设置为 null = False 造成。如果你有一个指向不存在对象的 ForeignKey 的记录,并且包含的​​外键是 list_display,将不会显示在管理更改列表中,因为 Django 模型正在声明未作用在数据库级别的完整性约束。

如何个性化管理员后台接口的功能?

你有几个选择。 如果您想要在 Django 自动生成的添加/更改表单上加载,您可以通过模型的类 Admin js parameter <modeladmin-asset-definitions>`将任意 JavaScript 模块附加到页面上。 该参数是一个 URL 列表,作为字符串,指向将通过 ``<script>` 标签包含在管理表单中的 JavaScript 模块。

如果你想要更灵活的使用表单,请随意为 Admin 模块编写自定义视图。 Admin 模块是由Django 官方提供支持的模块,你可以编写自定义的视图关联到身份验证,检查权限,并完成任何他们需要做的业务逻辑。

如果您想自定义管理界面的外观,请阅读下一个问题

动态生成的管理页面太丑了。我该怎么换掉它?

如果你不喜欢它,你可以通过修改 CSS 样式文件以及关联的图片来定制管理员界面。这个网站使用 HTML 语法和大量的 CSS 钩子,所以任何你想要的改变都应该可以通过修改 CSS 样式表来实现。

Admin 适配了哪些浏览器?

The admin provides a fully-functional experience to the recent versions of modern, web standards compliant browsers. On desktop this means Chrome, Edge, Firefox, Opera, Safari, and others.

On mobile and tablet devices, the admin provides a responsive experience for web standards compliant browsers. This includes the major browsers on both Android and iOS.

Depending on feature support, there may be minor stylistic differences between browsers. These are considered acceptable variations in rendering.

Back to Top