Django:Syncdb 错误地警告多对多字段已过时
Posted
技术标签:
【中文标题】Django:Syncdb 错误地警告多对多字段已过时【英文标题】:Django : Syncdb incorrectly warns that many-to-many field is stale 【发布时间】:2011-07-27 12:28:27 【问题描述】:我有一个 django 应用程序,其中一个应用程序与 UserProfile 具有多对多关系。但是每当我执行同步数据库时,它都会警告我 app_users 是陈旧的字段
The following content types are stale and need to be deleted:
Apps | app_users
#settings.py
AUTH_PROFILE_MODULE = 'kprofile.UserProfile'
#Apps/models.py
class app(models.Model):
....
users = models.ManyToManyField(UserProfile)
现在我不在视图内使用 UserProfile,除了规则内的一些身份验证目的。 UserProfile 只能从管理界面附加到应用程序。如何阻止 django syncdb 给我这个错误/不正确的警告?
【问题讨论】:
【参考方案1】:注意消息。这并不是说你的领域是陈旧的——它是在谈论 Content Types 模型中的一个条目。
在 shell 中,这样做:
from django.contrib.contenttypes.models import ContentType
ct = ContentType.objects.get(app_label='Apps', model='app_users')
ct.delete()
【讨论】:
听从您的命令并打印 ct。 ct =>ContentType.objects.filter(app_label='Apps', model='app_users').delete()
以上是关于Django:Syncdb 错误地警告多对多字段已过时的主要内容,如果未能解决你的问题,请参考以下文章
Django:对象需要具有字段“...”的值才能使用这种多对多关系