【发布时间】:2017-04-26 06:34:52
【问题描述】:
我最近从 Django 1.3 升级到 1.8,并且在尝试设置迁移时遇到了问题。之前用过South,已经通过settings.py卸载了,并删除了他们在各个app里的文件夹。
尝试设置迁移时出现此错误:
root@ip:/home/# python manage.py migrate
Operations to perform:
Synchronize unmigrated apps: web_forms, staticfiles, tinymce, messages, miscellaneous, generalpagess, gallery, template, import, navigation, frontpage, association
Apply all migrations: admin, contenttypes, sites, auth, sessions
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
Rendering model states...Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 346, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 394, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 445, in execute
output = self.handle(*args, **options)
File "/usr/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 222, in handle
executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
File "/usr/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 100, in migrate
state.apps # Render all real_apps -- performance critical
File "/usr/lib/python2.7/dist-packages/django/utils/functional.py", line 59, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/usr/lib/python2.7/dist-packages/django/db/migrations/state.py", line 166, in apps
return StateApps(self.real_apps, self.models)
File "/usr/lib/python2.7/dist-packages/django/db/migrations/state.py", line 226, in __init__
self.real_models.append(ModelState.from_model(model, exclude_rels=True))
File "/usr/lib/python2.7/dist-packages/django/db/migrations/state.py", line 345, in from_model
name, path, args, kwargs = field.deconstruct()
File "/usr/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 1253, in deconstruct
del kwargs['editable']
KeyError: u'editable'
运行makemigrations时我也遇到同样的错误
root@:/home/# python manage.py makemigrations
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 346, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 394, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 445, in execute
output = self.handle(*args, **options)
File "/usr/lib/python2.7/dist-packages/django/core/management/commands/makemigrations.py", line 99, in handle
ProjectState.from_apps(apps),
File "/usr/lib/python2.7/dist-packages/django/db/migrations/state.py", line 178, in from_apps
model_state = ModelState.from_model(model)
File "/usr/lib/python2.7/dist-packages/django/db/migrations/state.py", line 345, in from_model
name, path, args, kwargs = field.deconstruct()
File "/usr/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 1253, in deconstruct
del kwargs['editable']
KeyError: u'editable'
一直在互联网上寻找解决方案,但没有成功。
【问题讨论】:
-
我希望你先运行
makemigrations? -
谢谢@SijanBhandari 我也从那里得到同样的错误
-
请发布与迁移相关的models.py。
-
如果可以刷新数据,请尝试
dropdb db_name>并再次创建数据库并运行 makemigrations。它会起作用的。