FAQ:管理
无法登录。当我输入有效的用户名和密码后,页面再跳转到登录页面,没有显示任何错误信息。
登陆 cookie 没有被正确设置,这是因为由 Django 发出的 cookie 中的域名和浏览器页面的域名不匹配。可以通过修改设置中的 SESSION_COOKIE_DOMAIN
选项来匹配你的域名。例如,如果你需要在浏览器中访问 “https://www.example.com/admin/“,设置 SESSION_COOKIE_DOMAIN = 'www.example.com'
。
我无法登陆。当我输入有效的用户名和密码后,它又跳转到了登录界面,并且显示一个“请输入正确的用户名和密码”的错误。
如果你确定你的用户名和密码都是对的,请检查你的用户账户中的 is_active
和 is_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