【问题标题】:Django 1.8 Migrations - "NoneType" object has no attribute "_meta"Django 1.8 迁移 - “NoneType”对象没有属性“_meta”
【发布时间】:2015-06-15 10:47:06
【问题描述】:

尝试将项目从 Django 1.7 迁移到 1.8。在与代码错误搏斗之后,我能够运行迁移。但是,当我尝试迁移时,我收到错误“'NoneType' object has no attribute '_meta'”

在回溯中没有对我的任何应用程序的引用,所以我不确定在哪里寻找错误(以及在此处包含哪些代码,以便我可以为那些试图提供帮助的人提供更多帮助)我)

这是回溯的全文

(venv)rtownley@ubuntu:~/Projects/sparrow1/NJ$ ./manage.py makemigrations
No changes detected
(venv)rtownley@ubuntu:~/Projects/sparrow1/NJ$ ./manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: staticfiles, editor, djcelery, messages, getty, kombu_transport_django, debug_toolbar, utils, locking, petro, tokenapi, grappelli, django_extensions, selectable
  Apply all migrations: adops, taxonomy, issues, editorial, contenttypes, authors, auth, comms, membership, sessions, bento, urlalias, accounts, breaking_news, easy_thumbnails, images, admin, pages, documents, events
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 "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/core/management/base.py", line 390, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/core/management/base.py", line 441, in execute
    output = self.handle(*args, **options)
  File "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 221, in handle
    executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
  File "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/db/migrations/executor.py", line 104, in migrate
    state = migration.mutate_state(state, preserve=do_run)
  File "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/db/migrations/migration.py", line 83, in mutate_state
    operation.state_forwards(self.app_label, new_state)
  File "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/db/migrations/operations/fields.py", line 51, in state_forwards
    state.reload_model(app_label, self.model_name_lower)
  File "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/db/migrations/state.py", line 97, in reload_model
    related_models = get_related_models_recursive(old_model)
  File "/home/rtownley/Projects/sparrow1/venv/lib/python3.4/site-packages/django/db/migrations/state.py", line 57, in get_related_models_recursive
    rel_app_label, rel_model_name = rel_mod._meta.app_label, rel_mod._meta.model_name
AttributeError: 'NoneType' object has no attribute '_meta'

其他可能发挥作用的部分: -我有一个自定义处理程序,它监听保存事件,序列化数据,并在 Mongo 中创建一个相同的对象 - 在运行 Python3.4 的虚拟环境中运行

关于去哪里寻找错误有什么想法吗?谢谢,很抱歉我还不能提供更多代码!

【问题讨论】:

  • 显示迁移代码也有很长的路要走。
  • 看起来您的某个模型可能与不存在的模型相关?
  • 呃呃就是这样。我删除的模型在 Git 合并期间被另一个人重新添加。感谢您让我走上正轨!

标签: python django


【解决方案1】:

感谢 meiamsome,我想通了:我的一个模型与一个不再存在的模型有 ForeignKey 关系(我已将其删除,Git 合并已将其添加回来)。感谢大家的帮助!

【讨论】:

    【解决方案2】:

    怀疑这对任何人都有帮助,但我的模型名称周围有单引号,而不是引用类模型对象本身。删除引号似乎有帮助。

    【讨论】:

      猜你喜欢
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 2014-01-22
      相关资源
      最近更新 更多