0

如何成功删除过时的内容?
键入 yes 会产生以下结果:

Creating tables ...

以下内容类型已过时,需要删除:

auth | message

通过外键与这些内容类型相关的任何对象也将被删除。您确定要删除这些内容类型吗?如果您不确定,请回答“否”。

Type 'yes' to continue, or 'no' to cancel: yes

回溯(最近一次通话最后一次):...

raise errorclass, errorvalue
django.db.utils.DatabaseError: 
(1146, "Table '<db_name>.auth_group_permissions' doesn't exist")
Process finished with exit code 1

我尝试的另一件事是:

from django.contrib.contenttypes.models import ContentType
ct = ContentType.objects.get(app_label='auth',model='messages')

我收到以下信息:

DoesNotExist: ContentType matching query does not exist.
4

2 回答 2

2

你可以做一个

python manage.py dbshell

并检查您之前创建的所有表格。

查看auth_group_permissions是否存在。如果它不存在,我想您可以手动创建它并再次执行该过程。

于 2013-01-28T16:49:46.467 回答
1

modelcontenttype 的字段auth.message'message'而不是'messages'
所以试试

ct = ContentType.objects.get(app_label='auth',model='message')

然后,您可以列出ct.permission_set.all()甚至运行ct.delete()(在事务中并打印要删除的相关对象)以重现问题。

另外,关于'missing table'的错误很奇怪,你能在数据库中检查该表是否真的存在吗?还是您在 1.3 中配置了多个数据库?

于 2013-01-28T13:58:00.683 回答