Django 1.9 如何在 __init__.py 中导入
Django 1.9 how to import in __init__.py
我已经从 Django 1.8 更新到 1.9。
apps/comment/__init__.py(在 1.8 中)
from .models import Mixin
在 Django 1.9 中这不再有效,但我仍然想以相同的方式导入 Mixin
。
所以我尝试了这个:
apps/comment/__init__.py
default_app_config = 'comment.apps.CommentConfig'
apps/comment/apps.py
# Django imports.
from django.apps import AppConfig
class CommentConfig(AppConfig):
name = 'comments'
def ready(self):
"""
Perform initialization tasks.
"""
from .models import CommentMixin
然而,这似乎不起作用,即我无法做到 from comment import Mixin
,为什么?
添加 from .models import CommentMixin
导入 CommentMixin
以便您可以在 ready()
方法中使用它。它不会神奇地将它添加到 comment
模块,以便您可以作为 comments.CommentMixin
访问它
您可以在 ready()
方法中将其分配给 comments
模块。
# Django imports.
from django.apps import AppConfig
import comments
class CommentConfig(AppConfig):
name = 'comments'
def ready(self):
"""
Perform initialization tasks.
"""
from .models import CommentMixin
comments.CommentMixin = CommentsMixin
但是我不鼓励您这样做,您以后可能会遇到难以调试的导入错误。我只想将您的导入更改为 from comment.models import CommentMixin
.
我已经从 Django 1.8 更新到 1.9。
apps/comment/__init__.py(在 1.8 中)
from .models import Mixin
在 Django 1.9 中这不再有效,但我仍然想以相同的方式导入 Mixin
。
所以我尝试了这个:
apps/comment/__init__.py
default_app_config = 'comment.apps.CommentConfig'
apps/comment/apps.py
# Django imports.
from django.apps import AppConfig
class CommentConfig(AppConfig):
name = 'comments'
def ready(self):
"""
Perform initialization tasks.
"""
from .models import CommentMixin
然而,这似乎不起作用,即我无法做到 from comment import Mixin
,为什么?
添加 from .models import CommentMixin
导入 CommentMixin
以便您可以在 ready()
方法中使用它。它不会神奇地将它添加到 comment
模块,以便您可以作为 comments.CommentMixin
您可以在 ready()
方法中将其分配给 comments
模块。
# Django imports.
from django.apps import AppConfig
import comments
class CommentConfig(AppConfig):
name = 'comments'
def ready(self):
"""
Perform initialization tasks.
"""
from .models import CommentMixin
comments.CommentMixin = CommentsMixin
但是我不鼓励您这样做,您以后可能会遇到难以调试的导入错误。我只想将您的导入更改为 from comment.models import CommentMixin
.