添加了一个Image Field,得到OperationalError:Column不存在

时间:2014-09-26 23:52:46

标签: django django-userena

我正在使用Userena,在我的个人资料类中,我添加了一个ImageField,现在我得到OperationalError,每当我到达我网站上的注册页面时,列就不存在。

以下是代码。

from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
from userena.models import UserenaBaseProfile

class MyProfile(UserenaBaseProfile):
    user = models.OneToOneField(User,
                                unique=True,
                                verbose_name=_('user'),
                                related_name='my_profile')
    favourite_snack = models.CharField(_('favourite snack'),
                                       max_length=5
    coverpic = models.ImageField(upload_to="site_media/media/covers/", null=True, blank=True)

我在添加ImageField后已经运行了syncdb和South Migration几十次,所以我不确定这是不是问题。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

南方有时可能搞砸了。数据库字段在您的数据库中不存在,但南方认为它确实存在。

我发生这种情况时使用的解决方案是伪造删除迁移,然后在南方认为该字段已被删除后添加该字段。

  1. 注释掉coverpic行,然后运行./manage.py
  2. schemamigration app --auto运行虚假迁移以使南方思考 它正在删除字段| ./manage.py迁移app --fake
  3. 取消注释coverpic行,然后运行./manage.py schemamigration app --auto
  4. 添加字段./manage.py migrate app