【发布时间】:2025-11-28 06:30:01
【问题描述】:
我正在使用 Django 和 Python 3.7。我的项目中有两个应用程序 - common 和 mainsite。通常,我在应用程序的根目录(就在 models.py 旁边)有一个文件“model_utils.py”。它包含此代码
class RawCol(Expression):
def __init__(self, model, field_name):
field = model._meta.get_field(field_name)
self.table = model._meta.db_table
self.column = field.column
super().__init__(output_field=CharField())
def as_sql(self, compiler, connection):
sql = f'"{self.table}"."{self.column}"'
return sql, []
如何从我的其他应用程序“主站点”中引用此类?我把它放在主站点中我的一个文件的顶部..
from common import RawCol
但是当我运行一些测试时,我得到了这个错误......
ImportError: cannot import name 'RawCol' from 'common' (/Users/davea/Documents/workspace/mainsite_project/common/__init__.py)
编辑:*目录的项目结构看起来像...
+ common
+ mainsite
+ mainsite_project
+ manage.py
+ templates
+ venv
【问题讨论】:
-
你能分享一下你的项目结构吗?
-
嗨,用*结构编辑了我的问题。这是你要我提供的吗?
-
好像是循环导入的问题。您必须从
mainsite将某些内容导入此应用程序。您能否将您的文件夹结构和部分代码发布到您从mainsite导入的位置? -
我通常会做类似 from Project_name.apps.app_name.model_utils import RawCol.
标签: python django python-3.x import