---
title: "FAQ：管理"
version: 4.2
locale: zh-hans
source: https://docs.djangoproject.com/zh-hans/4.2/faq/admin/
canonical: https://djangodocs.dev/zh-hans/4.2/faq/admin/
---
# FAQ：管理

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

登陆 cookie 没有被正确设置，这是因为由 Django 发出的 cookie 中的域名和浏览器页面的域名不匹配。可以通过修改设置中的 [`SESSION_COOKIE_DOMAIN`](/zh-hans/4.2/ref/settings/#std-setting-SESSION_COOKIE_DOMAIN) 选项来匹配你的域名。例如，如果你需要在浏览器中访问 "<https://www.example.com/admin/>"，设置 `SESSION_COOKIE_DOMAIN = 'www.example.com'`。

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

如果你确定你的用户名和密码都是对的，请检查你的用户账户中的 [`is_active`](/zh-hans/4.2/ref/contrib/auth/#django.contrib.auth.models.User.is_active) 和 [`is_staff`](/zh-hans/4.2/ref/contrib/auth/#django.contrib.auth.models.User.is_staff) 被设为 True。管理员页面只允许这两项同时被设为 True 的用户访问。

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

[`ModelAdmin`](/zh-hans/4.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin) 类提供了自定义钩子（hooks），它允许你使用请求中的详细数据来修改一个已保存的对象。你可以从request中取出当前的用户对象，然后通过自定义 [`save_model()`](/zh-hans/4.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model) 钩子（hook）来更新一个反映用户编辑了的对象。参见 [the documentation on ModelAdmin methods](/zh-hans/4.2/ref/contrib/admin/#model-admin-methods) 中的示例。

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

[`ModelAdmin`](/zh-hans/4.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin) 类也提供了自定义沟子(Hook)来控制管理面板中的对象是否可见以及可修改。使用相同的技巧从 request 中提取出当前用户对象，然后自定义 [`get_queryset()`](/zh-hans/4.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_queryset) 和 [`has_change_permission()`](/zh-hans/4.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.has_change_permission) 来控制管理面板中的对象是否可见以及可修改。

## 管理界面的 CSS 和图片在开发模式下正常加载，但是在使用 mod\_wsgi 进行部署的情况下却无法进行加载？

请仔细阅读“如何利用 mod\_wsgi 部署 Django”文档中的 [部署 admin 模块的静态文件](/zh-hans/4.2/howto/deployment/wsgi/modwsgi/#serving-the-admin-files)。

## 我的“list\_filter”包含一个 ManyToManyField (多对多字段)，但过滤器不显示

如果没有相关联的对象，Django 不会显示 `ManyToManyField` 过滤器。

例如，如果您的 [`list_filter`](/zh-hans/4.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter) 包含 [sites](/zh-hans/4.2/ref/contrib/sites/)，并且你的数据库中没有站点，则不会显示“站点”过滤器。在这种情况下，按网站过滤将毫无意义。

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

不一致的行计数可能由缺少外键值或由将外键字段错误地设置为 [`null = False`](/zh-hans/4.2/ref/models/fields/#django.db.models.Field.null) 造成。如果你有一个指向不存在对象的  [`ForeignKey`](/zh-hans/4.2/ref/models/fields/#django.db.models.ForeignKey) 的记录，并且包含的​​外键是 [`list_display`](/zh-hans/4.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display)，将不会显示在管理更改列表中，因为 Django 模型正在声明未作用在数据库级别的完整性约束。

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

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

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

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

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

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

## Admin 适配了哪些浏览器？

管理可以让使用人员通过最新版本的符合 Web 标准的现代浏览器来体验所有功能。 在台式机上，这意味着 Chrome、Edge、Firefox、Opera、Safari等主流浏览器都可以无障碍访问管理站点。

在移动和平板电脑设备上，管理为符合 Web 标准的浏览器提供响应式体验。 这包括 Android 和 iOS 上的主要浏览器。

在支持的浏览器之间可能会有细微的风格差异，例如，某些浏览器可能不支持圆角。在渲染页面的时候会认为这些是可接受的差异。
