登陆 cookie 没有被正确设置,这是因为由 Django 发出的 cookie 中的域名和浏览器页面的域名不匹配。可以通过修改设置中的 "SESSION_COOKIE_DOMAIN" 选项来匹配你的域名。例如,如果你需要在浏览器中访问 "https://www.example.com/admin/",设置 SESSION_COOKIE_DOMAIN = 'www.example.com'
。
如果你确定你的用户名和密码都是对的,请检查你的用户账户中的“django.contrib.auth.models.User.is_active”和“django.contrib.auth.models.User.is_staff”被设为True。管理员页面只允许这两项同时被设为True的用户访问。
save_model`钩子(hook)来更新一个反映用户编辑了的对象。
参见:ref:`the documentation on ModelAdmin methods 1
中的示例。
ModelAdmin
类也提供了自定义沟子(Hook)来控制管理面板中的对象是否可见以及可修改。使用相同的技巧从 request 中提取出当前用户对象,然后自定义:meth:~django.contrib.admin.ModelAdmin.get_queryset 和 has_change_permission()
来控制管理面板中的对象是否可见以及可修改。
请仔细阅读“如何通过 mod_wsgi 部署 Django”下的<serving-the-admin-files>“部署 admin 模块的静态文件”
如果相关联对象少于 2 个,Django 则不会显示``ManyToManyField(多对多字段)``的过滤器
例如,如果您的:attr:~django.contrib.admin.ModelAdmin.list_filter`包含:doc:`sites 1,并且你的数据库中只有一个站点,则不会显示“站点”过滤器。在这种情况下,按网站过滤将毫无意义。
不一致的行计数可能由缺少外键值或由将外键字段错误地设置为:attr:null = False <django.db.models.Field.null>`造成。如果你有一个指向不存在对象的 class:`~django.db.models.ForeignKey 的记录,并且包含的外键是:attr:~django.contrib.admin.ModelAdmin.list_display,将不会显示在管理更改列表中,因为 Django 模型正在声明未作用在数据库级别的完整性约束。
你有几个选择。 如果您想要在 Django 自动生成的添加/更改表单上加载,您可以通过模型的类 Admin:ref:`js parameter <modeladmin-asset-definitions>`将任意 JavaScript 模块附加到页面上。 该参数是一个 URL 列表,作为字符串,指向将通过“<script>”标签包含在管理表单中的 JavaScript 模块。
如果您想要比简单调整后自动生成的表单更灵活,请随时为 Admin 模块编写自定义视图。 Admin 模版是由Django 官方提供支持的模块,你可以编写自定义的视图关联到认证,检查权限,并完成任何他们需要做的业务逻辑。
如果您想自定义管理界面的外观,请阅读下一个问题
如果你不喜欢它,你可以通过修改 CSS 样式文件以及关联的图片来定制管理员界面。这个网站使用 HTML 语法和大量的 CSS 钩子,所以任何你想要的改变都应该可以通过修改 CSS 样式表来实现。
除了 IE6,admin 为 YUI's A-grade 浏览器提供了一个全功能的体验。
在支持的浏览器之间可能会有细微的风格差异,例如,某些浏览器可能不支持圆角。在渲染页面的时候会认为这些是可接受的差异。
1月 11, 2019