Я давно не касался проекта и понял, что обновил свой django до версии 1.11.12. Попытка перезапустить проект (сервер запуска) и обнаружила несколько устаревших пакетов (easy-эскизы и psycopg2). Запустил pip install upgrade на тех. Теперь, когда я бегу, я получаю следующую ошибку, и кажется, что она исходит от моих моделей? Не знаю, о чем он мне говорит, или о правильном порядке действий. Может быть, я пропустил еще один этап обновления, когда перешел на django 1.11? (извините, прошло много времени с тех пор, как я коснулся этого кода)
Unhandled exception in thread started by <function wrapper at 0x104ab2500>
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 116, in inner_run
autoreload.raise_last_exception()
File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception
six.reraise(*_exception)
File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models()
File "/usr/local/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/shane.thomas/programming/sw_nga_site/swsite/models.py", line 12, in <module>
from filer.fields.image import FilerImageField
File "/usr/local/lib/python2.7/site-packages/filer/fields/image.py", line 4, in <module>
from ..models import Image
File "/usr/local/lib/python2.7/site-packages/filer/models/__init__.py", line 3, in <module>
from .clipboardmodels import * # flake8: noqa
File "/usr/local/lib/python2.7/site-packages/filer/models/clipboardmodels.py", line 9, in <module>
from . import filemodels
File "/usr/local/lib/python2.7/site-packages/filer/models/filemodels.py", line 18, in <module>
from .foldermodels import Folder
File "/usr/local/lib/python2.7/site-packages/filer/models/foldermodels.py", line 240, in <module>
mptt.register(Folder)
File "/usr/local/lib/python2.7/site-packages/mptt/__init__.py", line 12, in register
from mptt.models import MPTTModelBase
File "/usr/local/lib/python2.7/site-packages/mptt/models.py", line 379, in <module>
class MPTTModel(six.with_metaclass(MPTTModelBase, models.Model)):
File "/usr/local/lib/python2.7/site-packages/django/utils/six.py", line 808, in __new__
return meta(name, bases, d)
File "/usr/local/lib/python2.7/site-packages/mptt/models.py", line 262, in __new__
cls = super_new(meta, class_name, bases, class_dict)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 162, in __new__
new_class.add_to_class(obj_name, obj)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 325, in add_to_class
value.contribute_to_class(cls, name)
File "/usr/local/lib/python2.7/site-packages/mptt/managers.py", line 81, in contribute_to_class
super(TreeManager, self).contribute_to_class(model, name)
File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 120, in contribute_to_class
setattr(model, name, ManagerDescriptor(self))
AttributeError: can't set attribute
хороший звонок, выполнение pip install -U django-mptt исправил его, затем возникла ошибка файла. Обновил, что все еще появляется ошибка файла, так что копайте глубже. Я подумал, что есть способ как-то сказать «обновить все в моем проекте». Давно не трогал эту штуку :(
Похоже, что django-filer не работает под django 1.10 или выше: /
Дополнительное примечание, которое вы, вероятно, уже слышали: лучше использовать виртуальную среду для каждого проекта, чтобы избежать этих сюрпризов. Имея виртуальную среду, вы можете обновить ее по своему собственному расписанию.
Или перейти на более раннюю версию, если есть проблема? Я предполагаю, что это virtualenv? Я должен был все настроить таким образом, фактически возвращаясь к коду, я мог сказать, что я узнал намного больше, чем когда я впервые начал этот проект. Хотя мне любопытно. Как с помощью VE предотвратить эти сюрпризы? Я понимаю суть, но не понимаю, как у меня не было бы таких же проблем в этой среде? Не нуждаясь в длинном ответе здесь, я думаю, это хорошая тема для Google, и прошло некоторое время с тех пор, как я нырнул в django, поэтому, вероятно, пора.
Похоже, вам нужно обновить свою версию MPTT; вам, вероятно, следует обновить и другие зависимости.