[Python] How To Run Arbitrary Code After Django is "Fully Loaded"

Discussão em 'Python' iniciado por Stack, Janeiro 31, 2025.

  1. Stack

    Stack Membro Participativo

    I need to perform some fairly simple tasks after my Django environment has been "fully loaded".

    More specifically I need to do things like Signal.disconnect() some Django Signals that are setup by my third party library by default and connect my own Signals and I need to do some "monkey patching" to add convenience functions to some Django models from another library.

    I've been doing this stuff in my Django app's __init__.py file, which seems to work fine for the monkey patching, but doesn't work for my Signal disconnecting. The problem appears to be one of timing--for whatever reason the Third Party Library always seems to call its Signal.connect() after I try to Signal.disconnect() it.

    So two questions:

    Do I have any guarantee based on the order of my INSTALLED_APPS the order of when my app's __init__.py module is loaded?

    Is there a proper place to put logic that needs to run after Django apps have been fully loaded into memory?

    Continue reading...

Compartilhe esta Página