Je suis assez nouveau à Django et je me suis déplacé à partir de Drupal.
dans Drupal est possible de définir des variables de niveau de module (lecture "Application" pour Django) qui sont stockées dans la DB et utilisent l'une des DRPAL "Tables de base". L'idiome serait quelque chose comme: p> au meilleur de ma compréhension de My Newbie de Django, Django manque une telle fonctionnalité, mais - puisqu'il est un modèle commun - j'ai pensé à se tourner vers la communauté à (BTW: La valeur n'est pas une constante que je pourrais mettre dans un fichier de paramètres. C'est une valeur qui doit être actualisée quotidiennement et doit être lu à chaque demande). P> P>
3 Réponses :
Les données qui ne sont pas statiques sont stockées dans un modèle. Si vous devez partager des données ou des fonctions entre les applications, j'ai vu la convention de faire une application partagée, quelque chose comme «commun». Cela accueillerait des modèles partagés ou des fonctions d'utilité. P>
Dans les projets Django, j'ai vu que les données sont généralement spécifiques. Les données que vous stockez doivent être dans un modèle représentatif de ces données, je préférerais avoir un modèle / objet explicite représentant mes données puis un objet générique qui abrite des données très différentes. P>
Si vous ne définissez que 1 ou deux variables qui sont changées quotidiennement, peut-être qu'un magasin de clé / valeur comme Memcached fonctionnerait pour vous? P>
Il existe des applications pour y parvenir, mais j'aimerais recommander django-modeldicdict de DISQUS, comme brief p>
ModelDict est un moyen très efficace de stocker des éléments tels que Paramètres dans votre base de données. Le modèle entier est transformé en un dictionnaire (paresseusement) ainsi que stocké dans votre cache. C'est invalidé seulement quand Il doit être (à la fois en cours et à base de cache_backend). P> blockQuote>
Je cherche quelque chose de similaire à cela pendant un moment - cela ressemble à une bonne implémentation. Trois acclamations pour Disqus.
Merci, cela semble aller parfaitement à la facture. :)
Autre +1 pour modeldict. Une autre solution similaire est une autre solution similaire à Django Constance: P>
https://github.com/jazzband/django-cracstance p>
Il est prévu de stocker des paramètres de configuration de l'application dans la base de données et présente l'avantage de submerger un bon revue pour les éditer pour les administrateurs (avec les bonnes autorisations), gère les valeurs par défaut et dispose également de la mise en cache, etc. P>.
Si ce n'est pas clair de la documentation (ce qui n'est pas), vous pouvez définir les paramètres identiques à «la manière pythonique». C'est à dire. Pour définir un paramètre sur une valeur, vous faites p>
de constance importer config p>
config.variable_name = valeur p>