Неизвестные поля (поля) (…), указанные для MyModel

#database #django #django-models

#База данных #django #django-модели

Вопрос:

Я искал решения этой ошибки, но для всех остальных, похоже, это вызвано несколько иной причиной. У меня есть модели.py, который выглядит примерно следующим образом:

 class MyModel(models.Model):
    something1 = models.IntegerField()
    something2 = models.CharField(max_length=256)
    something3 = models.CharField(max_length=256)

class MyModelForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ('something1', 'something2',)
  

Скажем, я на самом деле больше не хочу использовать ‘something3’. Если я удалю его и даже удалю и повторно синхронизирую базу данных, я получу сообщение об ошибке

Неизвестные поля (поля) (something3), указанные для MyModel.

Насколько я заметил, это происходит, когда я сохраняю что-либо с помощью

 saveThis = MyModel(something1=x, something2=y)
saveThis.save()
  

Есть идеи, что вызывает эту ошибку? Я даже провел поиск по всем документам, чтобы убедиться, что «something3» отсутствует ни в одном из них. Вот трассировка:

   File "/Users/me/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/django/core/handlers/base.py", line 92, in get_response  
    response = middleware_method(request)  
  File "/Users/me/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/django/middleware/common.py", line 69, in process_request  
    if (not urlresolvers.is_valid_path(request.path_info, urlconf) and  
  File "/Users/me/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/django/core/urlresolvers.py", line 551, in is_valid_path  
    resolve(path, urlconf)  
  File "/Users/me/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/django/core/urlresolvers.py", line 440, in resolve  
    return get_resolver(urlconf).resolve(path)  
  File "/Users/me/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/django/core/urlresolvers.py", line 319, in resolve  
    for pattern in self.url_patterns:  
  File "/Users/me/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/django/core/urlresolvers.py", line 347, in url_patterns  
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)  
  File "/Users/me/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/django/core/urlresolvers.py", line 342, in urlconf_module  
    self._urlconf_module = import_module(self.urlconf_name)  
  File "/Users/me/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module  
    __import__(name)  
  File "/Users/me/Sites/myproj/myproj/urls.py", line 2, in <module>
    from myproj.views import myView1, myview2,...  
  File "/Users/me/Sites/myproj/myproj/views.py", line 4, in <module>  
    from mainapp.models import MyModel  
  File "/Users/me/Sites/myproj/myproj/mainapp/models.py", line 80, in <module>  
    class MyModelForm(ModelForm):  
  File "/Users/me/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/django/forms/models.py", line 221, in __new__  
    raise FieldError(message)  
  FieldError: Unknown field(s) (something3) specified for MyModel
  

Комментарии:

1. Вы должны использовать south для переноса базы данных. Подробности: south.readthedocs.org/en/latest

2. @ruddra — эта ошибка возникает даже после того, как я удаляю базу данных и начинаю заново, поэтому я не думаю, что это должно быть проблемой с миграцией.

3. Вам нужно показать точную обратную трассировку.

4. @ruddra — Нет, я все еще не знаю, чего это даст при запуске совершенно новой базы данных.

5. @DanielRoseman — добавлена обратная трассировка