Django 错误:关系 django_admin_log 的权限被拒绝

Posted

技术标签:

【中文标题】Django 错误:关系 django_admin_log 的权限被拒绝【英文标题】:Django Error: permission denied for relation django_admin_log 【发布时间】:2014-11-10 14:55:09 【问题描述】:

我正在尝试访问我的 Django 项目的管理界面。我可以访问初始的“登录”屏幕,但是一旦我输入我的凭据,我就会收到以下错误:

/admin/ 处的编程错误

关系 django_admin_log 的权限被拒绝

异常类型:ProgrammingError

异常值: 关系 django_admin_log 的权限被拒绝

异常位置:.../.virtualenvs/testing/lib/python2.7/site-packages/django/db/backends/utils.py 在执行中,第 65 行 模板渲染出错

在模板.../.virtualenvs/testing/lib/python2.7/site-packages/django/contrib/admin/templates/admin/index.html,第63行出错

关系 django_admin_log 的权限被拒绝

我几乎没有编写任何代码(终于完成了 postgresql 数据库的设置),但有些不对劲,我无法访问管理页面。 我的模型在 admin.py 中“注册”,并且该应用程序包含在 settings.py 中的 INSTALLED APPS 下。我在 views.py 或 urls.py 中没有任何更改。

任何帮助都将非常非常感谢。谢谢!

【问题讨论】:

你运行manage.py syncdbcommand了吗? 【参考方案1】:

这是一个数据库访问被拒绝错误。

检查您的数据库服务器访问设置。

以 Postgresql 为例(任何更改都需要重启服务器):

/etc/postgresql/X.X/main/pg_hba.conf

host    all   all   0.0.0.0    0.0.0.0   md5

【讨论】:

我确实可以通过 psql 交互式 shell 访问数据库。这有关系吗?我的 pg_hba.conf 看起来像: 用什么用户?和你的 settings.py 一样吗? 那个用户是数据库的所有者?我的意思是,您以该用户为所有者创建数据库? 就是这样!用户不是“所有者”。我切换它并且它工作。非常感谢!【参考方案2】:

这是数据库访问被拒绝错误。

如果您使用的是 Linux 并安装了 Postgres SQL,请按照以下步骤操作:

1.通过键入

切换到服务器(本地计算机)上的 postgres 帐户:
sudo -i -u postgres

2。您现在可以通过键入以下内容立即访问 Postgres 提示:

psql

他会将您直接登录到 Postgres,您的提示将如下所示:postgres=#

3.删除 django_admin_log 表

DROP TABLE django_admin_log;

4.创建一个新的 django_admin_log 表

CREATE TABLE django_session (
    id              integer,
    action_time     timestamp with time zone,
    object_id       text,
    object_repr     character varying(200),
    action_flag     smallint,
    change_message  text,
    content_type_id integer,
    user_id         integer
);

5.退出

\q

【讨论】:

以上是关于Django 错误:关系 django_admin_log 的权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Django_admin源码流程

麦子学院 Django 笔记 02

Django搭建Django administration并登录

django后台管理系统xadmin

xadmin

Django 错误:关系 django_admin_log 的权限被拒绝