0

Я внесла изменения в свой models.py. Изменить поле от FileField() к ImageWithThumbsField()Django: Got FieldDoesNotExist ошибка при изменении типа поля в моделях

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")

Тот, кто хочет работать над этим вместе приветствуются.

ответ

0

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

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

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

Благодаря этому вопросу! mongoengine - Ignore extra fields for schema validation

+0

Какой пакет вы используете для ImageWithThumbsField? – Shipra

+0

Я использую 'django-thumbs' –