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.