La plupart de mes scripts commandline (et Cron) ressemble à quelque chose comme:
#!/usr/bin/env python
from django.core.management import setup_environ
import settings
setup_environ(settings)
from django.db import transaction
... code ...
# you need to do the followng before exit if you did any DB changes.
transaction.commit_unless_managed()
Mise à jour pour les commentaires:
Si vous avez effectué des modifications/autres changements, alors ma réponse (peut-être un peu obsolète) est Oui. Je ne sais pas si c'est encore nécessaire dans la dernière version stable, mais je suis une sorte de ceinture-et-bretelles quand il s'agit de ma base de données. Je vois transaction.commit_unless_managed()
à la fin de mes scripts comme une sorte de filet de sécurité: Si le mode géré est en vigueur, alors c'est un NOP, si n'est pas alors cela s'assure que la validation a lieu.
Merci beaucoup! Que faire si j'ai plusieurs projets? Est-il nécessaire de créer un utilisateur dédié pour chaque projet Django? – RadiantHex
J'imagine que c'est à vous de décider comment organiser vos comptes utilisateurs, si vos projets utilisent la même base de données utilisateur ou des bases de données distinctes, si vos applications requièrent des permissions spécifiques, etc. Si vous voulez utiliser un seul partage compte d'utilisateur à cet effet, il est également possible (si vos projets partagent la base de données pour les comptes d'utilisateurs et les autorisations). –
ne fonctionne pas :(Je reçois quelques erreurs d'importation de fichiers models.py dans mon application – RadiantHex