Django: ошибка FieldDoesNotExist при изменении типа поля в моделях

Я внес изменения в свой models.py. Я меняю поле с FileField() на ImageWithThumbsField()

from mongoengine import *
from gradfounder.settings import DBNAME
from embed_video.fields import EmbedVideoField
from thumbs import ImageWithThumbsField

##########################################
# Mongoengine registration/authentication
#from mongoengine.django.auth import User
##########################################

#connect(DBNAME)
# connect(DBNAME, host='127.0.0.1', port=27017)
connect(DBNAME, host='xxx.xxx.xxx.xxx', port=27017)

class Author(Document):
    # photo = FileField()
    photo = ImageWithThumbsField(upload_to="avatars")
    photoname = StringField()

Затем я получил эту ошибку

  File "C:\Python27\lib\site-packages\mongoengine\base\document.py", line 80, in
 __init__
    raise FieldDoesNotExist(msg)
FieldDoesNotExist: The field 'photo' does not exist on the document 'Author'

Я попытался выполнить миграцию и syncdb, но получил ошибку DatabaseError: (1050, "Table 'profiles_profile' already exists")

Приглашаются все желающие работать над этим вместе.


person Aminah Nuraini    schedule 12.06.2016    source источник


Ответы (1)


Да! Я нашел решение!

Ошибка была вызвана проверкой Mongoengine, которая запуталась в измененном поле. Решение состоит в том, чтобы отключить проверку, добавив этот код:

class Author(Document):
    # photo = FileField()
    photo = ImageWithThumbsField(upload_to="avatars")
    photoname = StringField()
    meta = {'strict': False}

Благодаря этому вопросу! mongoengine — игнорировать дополнительные поля для проверки схемы

person Aminah Nuraini    schedule 12.06.2016
comment
Какой пакет вы используете для ImageWithThumbsField? - person Shipra; 01.09.2016
comment
Я использую django-thumbs - person Aminah Nuraini; 01.09.2016