南不迁移django.contrib.admin

时间:2013-02-17 18:12:16

标签: django django-models django-admin django-south

我有一个由South管理的Django项目。我在第一次启动项目时遇到了正常的程序:

  • 安装南
  • 将南方添加到INSTALLED_APPS
  • 执行初始syncdb
  • schemamigration --initial,然后是迁移myapp

一切都很好,从那以后我做了几次迁移。现在我启用了网站的django管理员部分(INSTALLED_APPS,网址等)。当我尝试添加测试用户时,收到了以下错误:

Request Method: POST
Request URL:    http://127.0.0.1:8000/admin/auth/user/add/
Django Version: 1.4.3
Exception Type: DatabaseError
Exception Value:    
no such table: django_admin_log

我尝试了schemamigration myapp --auto,但它告诉我一切都没有改变。我甚至试过运行convert_to_south django.contrib.admin,以及尝试虚假迁移,但我一直都遇到同样的错误。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

只有使用南方的应用才能由南方管理

django.contrib.admin没有。相反,你需要另一个syncdb(它将保留任何现有的表,所以应该可以安全运行)

答案 1 :(得分:2)

第二个答案是正确的

  

只有使用南方的应用才能由南方管理

所以使用南方不是一个可能的解决方案。

您的问题是syncdb认为已经创建了django_admin_log的表。

解决方案

  1. 打开您的django_content_type表。
  2. 删除name="log entry", app_label="admin", model="logentry"内容类型的记录。
  3. 再次运行syncdb