django admin错误 - 未知列&django_content_type.name'在'字段列表'

时间:2015-04-09 12:23:07

标签: python django

我的django项目有一个工作的管理页面,但突然间我开始收到:  每当我尝试访问管理页面时"Unknown column 'django_content_type.name' in 'field list'"。我仍然可以访问管理员的某些部分,而不是主页。

我对django和python很新,所以我不知道在哪里看。

这里有完整的错误:

InternalError at /admin/
(1054, u"Unknown column 'django_content_type.name' in 'field list'")
Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/
Django Version: 1.7.7
Exception Type: InternalError
Exception Value:    
(1054, u"Unknown column 'django_content_type.name' in 'field list'")
Exception Location: c:\Python27\lib\site-packages\pymysql\err.py in _check_mysql_exception, line 115
Python Executable:  c:\Python27\python.exe
Python Version: 2.7.9
Python Path:    
['c:\\users\\dhysong\\Documents\\School\\CS6310\\Project4\\CS6310',
 'C:\\Windows\\system32\\python27.zip',
 'c:\\Python27\\DLLs',
 'c:\\Python27\\lib',
 'c:\\Python27\\lib\\plat-win',
 'c:\\Python27\\lib\\lib-tk',
 'c:\\Python27',
 'c:\\Python27\\lib\\site-packages']
Server time:    Thu, 9 Apr 2015 08:17:05 -0400
第63行出现

html错误:

In template c:\Python27\lib\site-packages\django\contrib\admin\templates\admin\index.html, error at line 63
1054
53  <div id="content-related">
54      <div class="module" id="recent-actions-module">
55          <h2>{% trans 'Recent Actions' %}</h2>
56          <h3>{% trans 'My Actions' %}</h3>
57              {% load log %}
58              {% get_admin_log 10 as admin_log for_user user %}
59              {% if not admin_log %}
60              <p>{% trans 'None available' %}</p>
61              {% else %}
62              <ul class="actionlist">
63              {% for entry in admin_log %}
64              <li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">
65                  {% if entry.is_deletion or not entry.get_admin_url %}
66                      {{ entry.object_repr }}
67                  {% else %}
68                      <a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
69                  {% endif %}
70                  <br/>
71                  {% if entry.content_type %}
72                      <span class="mini quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}</span>
73                  {% else %}

7 个答案:

答案 0 :(得分:10)

我刚才遇到了同样的问题,它与不同版本的django有关。我使用pip install -U Django将我项目中工作的所有机器更新到django 1.8,之后一切正常。

答案 1 :(得分:5)

我们的MySQL修复程序是 drop table django_content_type;

来自karthikr和moonchel的笔记引导我解决问题。 1054安装后发生未知的列错误 Django 1.8成为一个virtualenv尝试它,然后尝试 在不同的virtualenv中使用预先存在的Django 1.6。 MySQL搞砸了。

Django 1.7 / 1.8 syncdb修改了django_content_type表 从中删除“名称”列。

+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| app_label | varchar(100) | NO   | MUL | NULL    |                |
| model     | varchar(100) | NO   |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

Django 1.6 syncdb creates the table with the 'name' column:
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| name      | varchar(100) | NO   |     | NULL    |                |
| app_label | varchar(100) | NO   | MUL | NULL    |                |
| model     | varchar(100) | NO   |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

所以删除表并让syncdb根据Django版本的需要重新创建它。 如果对放下它感到紧张,请进行转储:mysqldump -u <mysqladminname> -p <databasename> django_content_type > /tmp/django_content_type.dmp

答案 2 :(得分:1)

它不是django错误,它是MySQL。我刚开始一个项目,但是将django版本从1.8改为1.7并且出现了这个错误。所以,我droped所有表并运行迁移。但是你不需要丢弃所有表格,只是一部分,可能只是一个。

答案 3 :(得分:1)

在一个庞大的框架中,大约45个Django应用程序和12个ReactJS应用程序遇到了同样的问题;让我们看一下解决我的情况的代码:


1-首先安装django软件包,这些软件包通常会增加您对manage.py和django的本机命令选项;除了尝试通过将django升级到新版本来重新安装--->

***"pip install -U django django-rest-framework-tricks django-shortcuts django-admin-shortcuts django_extensions";***

2-详细阅读错误时,我意识到一些.pyc和 init 文件已链接到该事实,因此在主项目目录中执行“ manage.py”文件所在的位置;我们将清理,保证许可权并取消链接到银行的所有可能干扰框架的部分的链接:

***"./manage.py clean_pyc", "./manage.py clear_cache", "./manage.py update_permissions", ". /manage.py clearsessions "***

3-如果仍然存储了高速缓存或临时执行文件,则仍位于“ manage.py”文件所在的目录中,无论出于任何原因都不会删除;执行命令以强制消除可能干扰框架的这些文件:

***"sudo find. -name '* __ pycache__' -exec rm -rf {} + && \
sudo python manage.py makemigrations && \
sudo find. -path "* / migrations / *. py" -not -name "__init__.py" -delete && \
sudo find. -path "* / migrations / *. pyc" -delete; "***

4-最后是一个很棒但非常出色的命令,可以迫使模型和视图与框架和数据库重新建立索引;以我的情况为例,我将以SAO(GUI_CUBE_X和BUI_CUBE_Y)为例,输入您的应用程序名称;您可以输入多少,这没关系,但是在两个步骤中使用了q,必须在两个过程中复制名称才能工作:

***"
./manage.py makemigrations && \
./manage.py migrate --fake GUI_CUBE_X zero && \
./manage.py migrate --fake GUI_CUBE_Y zero && \
./manage.py showmigrations && \
./manage.py makemigrations && \
./manage.py migrate --fake GUI_CUBE_X && \
./manage.py migrate --fake GUI_CUBE_Y && \
./manage.py makemigrations && \
./manage.py migrate && \
./manage.py collectstatic --clear --force-color --no-input;
systemctl restart uwsgi;
systemctl restart nginx;
"***

5-再次测试您的应用程序

"./manage.py runserver 0.0.0.0:8080"

...成功!!!我们准备继续表演伙计大声笑!!!

Enviar反馈 历史学家 萨尔瓦斯 社区

答案 4 :(得分:0)

由两个不同版本的Django安装引起。当我在本地安装Django1.7和在​​virtualenv中安装了1.8时出现错误。

pip uninstall django

对于本地版本,然后从manage.py runserver内重新启动virtualenv为我修复了错误。

答案 5 :(得分:0)

如果您在本地和虚拟环境中安装了Django,请确保已激活虚拟环境。

答案 6 :(得分:0)

enter image description here

确保django_migrations正确无误。