J'ai créé un package à utiliser avec django, dont la fonction principale est accessible via une commande de gestion. Cependant, afin de rendre les commandes de gestion accessibles, django semble insister pour que le paquet soit listé comme une application dans INSTALLED_APPS
dans settings.py
.Commande Django add management sans installation en tant qu'app
Cette application est simplement utilisée dans le cadre de notre processus de construction tout en effectuant des tests d'intégration. Il n'a même pas besoin d'être installé sur des machines de développement, et encore moins de finir dans notre environnement de production. Cependant, comme il doit être dans les applications installées de settings.py
, il s'étend également à requirements.txt
, car il casse soudainement les builds partout où il n'est pas installé.
Existe-t-il un moyen d'injecter une commande de gestion sans installer le package en tant qu'application complète?
Alternativement: existe-t-il un moyen standard/recommandé de rendre une commande disponible à tox
d'une manière différente de celle obtenue par une commande de gestion?
En regardant le code source: https://github.com/django/django/blob/master/django/core/management/__init__.py Les commandes de gestion sont assez restrictives - dans le sens où elles ne permettent que des ins intégrés ou des applications définies dans INSTALLED_APPS – karthikr
Juste, j'avais peur de cela (maintenant que vous le mentionnez, en regardant la source aurait dû être mon premier essai). Existe-t-il une approche standard différente pour rendre une commande disponible à «tox», en plus d'une commande de gestion? – Joost
Une approche que j'ai prise dans le passé - bien que pas très élégant est d'avoir un répertoire 'scripts /' et appelle le 'django.setup()' pour l'enregistrer comme un script django - il a cependant ses inconvénients. – karthikr