0

我正在使用 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,所以我不确定这是否是问题所在。

我在这里做错了什么?

4

1 回答 1

0

南方有时会搞砸。您的数据库中不存在 database 字段,但 south 认为存在。

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

  1. 注释掉封面图片行,然后运行 ​​./manage.py
  2. schemamigration app --auto 运行虚假迁移以使南认为它正在删除该字段 | ./manage.py 迁移应用程序 --fake
  3. 取消注释coverpic 行,然后运行 ​​./manage.py schemamigration app --auto
  4. 添加字段 ./manage.py migrate app
于 2014-09-27T05:54:29.047 回答