可能有人请解释这种现象:奇怪Django的进口行为
Django项目称为foo
文件bar/models.py
:
class MyModelError(TypeError):
pass
class MyModel(models.Model):
...
./manage.py shell
>>> from foo.bar.models import MyModel as m1
>>> from bar.models import MyModel as m2
>>> from foo.bar.models import MyModelError as e1
>>> from bar.models import MyModelError as e2
>>> m1 is m2
True
>>> e1 is e2
False
假?
>>> m1
<class 'foo.bar.models.MyModel'>
>>> m2
<class 'foo.bar.models.MyModel'>
>>> e1
<class 'foo.bar.models.MyModelError'>
>>> e1
<class 'bar.models.MyModelError'>
任何想法,我在做什么错在这里?我的解决方法(除了确保我导入'正确的方式')是使错误类成为模型本身的成员(如django model.DoesNotExists
)但我想知道发生了什么
不要使用点作为模块名称的一部分。 – 2011-06-16 11:56:07
我相当确定这是一个错字,因为您无法通过'import'在名称中导入带有点的模块。 – 2011-06-16 11:58:09
确实是一个错字。固定 – second 2011-06-16 11:59:51