#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 — добавлена обратная трассировка