首页 > 解决方案 > Django 在迁移期间无法导入本地模块

问题描述

在我的项目中,我有两个自定义对象,在本地 fields.py 文件和 blocks.py 文件中定义。我将它们导入到我的 models.py 中,如下所示:

from . import fields as blockfields
from . import blocks 

运行迁移时,自动生成的迁移如下所示:

import PROJECTNAME.fields
import blocks

并且由于块不在迁移文件夹的本地范围内,因此会引发错误。如果我手动将其更改为“将 PROJECTNAME.blocks 作为块导入”,那么它运行良好,但每次都必须这样做是很愚蠢的。有什么想法吗?


更新:使用 Django 2.1.4、Python 3.6.7

因此文件夹结构为:

PROJECTNAME
-fields.py
-models.py
-blocks/
--__init__.py
--*.py
-migrations/
--*.py

我已经尝试过创建一个 blocks.py 文件,它只指向该文件夹,但它不会更改自动迁移的导入范围。

在我的块域中,我也引用块,这就是引用如何融入迁移的方式。fields.py 文件具有 django 的通用 models.Field 的扩展,而这些块是从头开始的自定义类型。

标签: pythondjangomigration

解决方案


推荐阅读