2014-09-26 65 views
0

我使用Userena,並在我的個人檔案類中,我添加了一個ImageField,現在我得到了OperationalError,每當我到達我網站上的註冊頁面時,列都不存在。添加一個圖像字段,得到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) 

我已經跑了執行syncdb和南方遷移數十次加入的ImageField後,所以我不知道如果是這樣的問題。

我在這裏做錯了什麼?

+0

有你用inspectdb或類似的東西確認你的數據庫的完整性? – souldeux 2014-09-27 00:02:04

+0

你是什麼意思運行南遷移?你運行了schemamigration嗎?有沒有輸出?是否增加了該字段的遷移? – 2014-09-27 00:24:13

+0

我做了./manage.py遷移沒有錯誤 – stephan 2014-09-27 02:01:26

回答

0

南方有時可能會搞砸。數據庫字段不存在於您的數據庫中,但南方認爲它確實存在。

我在這種情況發生時使用的解決方案是僞造刪除遷移,然後在south認爲該字段已被刪除後添加該字段。

  1. 註釋掉coverpic行,然後運行./manage.py
  2. schemamigration應用--auto運行一個假的遷移,使南認爲 ,它的去除場| ./manage.py遷移應用--fake
  3. 取消對coverpic行,然後運行./manage.py schemamigration應用--auto
  4. ,添加字段./manage.py遷移應用
相關問題