可能有人請解釋這種現象:奇怪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