django admin错误 - '字段列表'中的未知列'django_content_type.name'

dhy*_*ong 10 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
Run Code Online (Sandbox Code Playgroud)

第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 %}
Run Code Online (Sandbox Code Playgroud)

小智 10

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


小智 5

MySQL中的修复程序是删除表django_content_type;

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

Django 1.7/1.8 syncdb修改了django_content_type表,从中删除了'name'列.

+-----------+--------------+------+-----+---------+----------------+
| 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    |                |
+-----------+--------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)

因此,删除表并让syncdb根据Django版本的需要重新创建它.如果担心丢弃它,请采取转储:mysqldump -u <mysqladminname> -p <databasename> django_content_type > /tmp/django_content_type.dmp