【问题标题】:Why are my Django migrations loading my urls.py?为什么我的 Django 迁移会加载我的 urls.py?
【发布时间】:2016-11-17 22:05:24
【问题描述】:

我正在尝试在新安装的 Heroku 实例上运行 django 迁移,但得到了 ProgrammingError。该错误是由于某些模块级查询在完全独立的模块中执行的,因此在迁移期间根本不应调用。

事实证明,调用这些文件的原因是因为它们位于导入到我的urls.py 的文件中,并且出于某种原因,Django 正在加载这些 url。

是否有某些原因 Django 必须加载 url,即使迁移不依赖它们,有什么方法可以阻止它们被加载?

【问题讨论】:

  • 听起来你应该解决的地方可能有错误。但如果只是迁移问题,您可以进入migrations 文件夹并编辑导致问题的填充。
  • 你能发布你的 URL 文件的要点以及问题文件吗?
  • 我刚刚在迁移过程中被同样的ProgrammingError 问题困扰了几个小时(这只是在开发中),也是因为它正在拉入我的urls.py。你知道manage.py为什么要这么做@Soviut吗?

标签: python django django-models django-migrations


【解决方案1】:

BaseCommand类中有一个布尔类属性叫requires_system_checks,默认为True。它将在执行命令之前检查所有潜在问题。在3.0 版本中,有一个名为--skip-checks 的标志,它在运行命令之前跳过运行系统检查。我检查了一个全新生成的 Django 项目,它没有引发我在 urls.py 模块中故意编写的预期异常。

【讨论】:

    【解决方案2】:

    我在models.py 文件的顶部添加了以下几行。

    from django.core.management.base import BaseCommand
    BaseCommand.requires_system_checks = False
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-06
      • 2017-12-09
      • 2020-11-30
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      相关资源
      最近更新 更多