简体   繁体   English

在Django中,如何防止AppConfig.ready()中的信号导入多次运行?

[英]In Django, how can I prevent my signals import in AppConfig.ready() from running more than once?

To keep signals organised: 保持信号组织:

__init__.py

default_app_config = 'posts.apps.PostsConfig'

apps.py

from django.apps import AppConfig


class PostsConfig(AppConfig):
    name = 'posts'

    def ready(self):
        import posts.signals

How do I ensure that ready() or import posts.signals only runs once? 如何确保ready()import posts.signals只运行一次?

from django.apps import AppConfig


class PostsConfig(AppConfig):
    name = 'posts'
    ready_has_run = False

    def ready(self):
        if self.ready_has_run:
            return
        import posts.signals
        self.ready_has_run = True

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM