{"title":"FAQ : utilisation de Django","version":"1.9","locale":"fr","docname":"faq/usage","url":"/fr/1.9/faq/usage/","canonical":"https://djangodocs.dev/fr/1.9/faq/usage/","summary":"Pourquoi ai-je une erreur sur l’importation de DJANGO_SETTINGS_MODULE ? Lien vers cette rubrique # Assurez-vous que : La variable d’environnement…","html":"<h1>FAQ : utilisation de Django<a class=\"heading-anchor\" href=\"#faq-using-django\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"why-do-i-get-an-error-about-importing-django-settings-module\">\n<h2>Pourquoi ai-je une erreur sur l’importation de DJANGO_SETTINGS_MODULE ?<a class=\"heading-anchor\" href=\"#why-do-i-get-an-error-about-importing-django-settings-module\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Assurez-vous que :</p>\n<ul class=\"simple\">\n<li><p>La variable d’environnement DJANGO_SETTINGS_MODULE  est définie sur un module Python complètement qualifié (par ex. « mysite.settings »).</p></li>\n<li><p>Ledit module se trouve dans <code class=\"docutils literal notranslate\"><span class=\"pre\">sys.path</span></code> (<code class=\"docutils literal notranslate\"><span class=\"pre\">import</span> <span class=\"pre\">mysite.settings</span></code> devrait fonctionner).</p></li>\n<li><p>Le module ne contient pas d’erreurs de syntaxe (évidemment).</p></li>\n</ul>\n</section>\n<section id=\"i-can-t-stand-your-template-language-do-i-have-to-use-it\">\n<h2>Je ne supporte pas votre langage de gabarit. Suis-je obligé de l’utiliser ?<a class=\"heading-anchor\" href=\"#i-can-t-stand-your-template-language-do-i-have-to-use-it\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Il nous arrive de penser que notre moteur de gabarit est la meilleure chose depuis le lard en morceaux, mais nous reconnaissons que le choix d’un langage de gabarit est proche de celui d’une religion. Il n’y a rien dans Django qui nécessite l’utilisation de son langage de gabarit, donc si vous êtes attaché à Jinja2, Mako, ou quoi que ce soit, n’hésitez pas à les utiliser.</p>\n</section>\n<section id=\"do-i-have-to-use-your-model-database-layer\">\n<h2>Dois-je utiliser votre couche modèle/base de données ?<a class=\"heading-anchor\" href=\"#do-i-have-to-use-your-model-database-layer\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Non. Tout comme le système de gabarit, la couche modèle/base de données est découplée du reste du système.</p>\n<p>La seule exception étant : si vous utilisez une autre bibliothèque de base de données, vous ne pourrez pas utiliser le site d’administration généré automatiquement par Django. Cette application est couplée à la couche de base de données de Django.</p>\n</section>\n<section id=\"how-do-i-use-image-and-file-fields\">\n<h2>Comment puis-je utiliser les champs image et fichier ?<a class=\"heading-anchor\" href=\"#how-do-i-use-image-and-file-fields\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>L’utilisation d’un champ <a class=\"reference internal\" href=\"/fr/1.9/ref/models/fields/#django.db.models.FileField\" title=\"django.db.models.FileField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FileField</span></code></a> ou d’un champ <a class=\"reference internal\" href=\"/fr/1.9/ref/models/fields/#django.db.models.ImageField\" title=\"django.db.models.ImageField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImageField</span></code></a> dans un modèle implique quelques étapes :</p>\n<ol class=\"arabic simple\">\n<li><p>Dans votre fichier de réglages, vous devez indiquer dans <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a> le chemin d’accès absolu vers un répertoire où Django peut enregistrer les fichiers téléversés (pour des raisons de performance, ces fichiers ne sont pas stockés en base de données). Indiquez dans <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> l’URL publique de base correspondant à ce répertoire. Assurez-vous que ce répertoire soit accessible en écriture par l’utilisateur du serveur Web.</p></li>\n<li><p>Ajoutez le champ <a class=\"reference internal\" href=\"/fr/1.9/ref/models/fields/#django.db.models.FileField\" title=\"django.db.models.FileField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FileField</span></code></a> ou <a class=\"reference internal\" href=\"/fr/1.9/ref/models/fields/#django.db.models.ImageField\" title=\"django.db.models.ImageField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImageField</span></code></a> à votre modèle, en définissant l’option <a class=\"reference internal\" href=\"/fr/1.9/ref/models/fields/#django.db.models.FileField.upload_to\" title=\"django.db.models.FileField.upload_to\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">upload_to</span></code></a> pour indiquer dans quel sous-répertoire de <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a> les fichiers doivent être téléversés.</p></li>\n<li><p>La base de données ne stockera qu’un chemin d’accès au fichier (relatif à <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a>). On utilise ensuite très souvent l’attribut <a class=\"reference internal\" href=\"/fr/1.9/ref/models/fields/#django.db.models.fields.files.FieldFile.url\" title=\"django.db.models.fields.files.FieldFile.url\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">url</span></code></a> fourni par Django. Par exemple, si un champ <a class=\"reference internal\" href=\"/fr/1.9/ref/models/fields/#django.db.models.ImageField\" title=\"django.db.models.ImageField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImageField</span></code></a> est nommé <code class=\"docutils literal notranslate\"><span class=\"pre\">mug_shot</span></code>, vous pouvez obtenir le chemin absolu de l’image correspondante dans un gabarit avec <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">object.mug_shot.url</span> <span class=\"pre\">}}</span></code>.</p></li>\n</ol>\n</section>\n<section id=\"how-do-i-make-a-variable-available-to-all-my-templates\">\n<h2>Comment puis-je rendre une variable disponible pour tous mes gabarits ?<a class=\"heading-anchor\" href=\"#how-do-i-make-a-variable-available-to-all-my-templates\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Parfois, vos gabarits ont tous besoin de la même chose. Un exemple courant serait des menus générés dynamiquement. À première vue, il semble logique d’ajouter simplement un dictionnaire commun dans le contexte du gabarit.</p>\n<p>La bonne solution est d’utiliser un <code class=\"docutils literal notranslate\"><span class=\"pre\">RequestContext</span></code>. Les détails sur comment s’y prendre se trouvent ici : <a class=\"reference internal\" href=\"/fr/1.9/ref/templates/api/#subclassing-context-requestcontext\"><span class=\"std std-ref\">Sous-classe de Context: RequestContext</span></a>.</p>\n</section>","rootId":"faq-using-django","toc":[{"title":"Pourquoi ai-je une erreur sur l’importation de DJANGO_SETTINGS_MODULE ?","anchor":"why-do-i-get-an-error-about-importing-django-settings-module","children":[]},{"title":"Je ne supporte pas votre langage de gabarit. Suis-je obligé de l’utiliser ?","anchor":"i-can-t-stand-your-template-language-do-i-have-to-use-it","children":[]},{"title":"Dois-je utiliser votre couche modèle/base de données ?","anchor":"do-i-have-to-use-your-model-database-layer","children":[]},{"title":"Comment puis-je utiliser les champs image et fichier ?","anchor":"how-do-i-use-image-and-file-fields","children":[]},{"title":"Comment puis-je rendre une variable disponible pour tous mes gabarits ?","anchor":"how-do-i-make-a-variable-available-to-all-my-templates","children":[]}],"breadcrumbs":[{"docname":"faq/index","title":"FAQ Django","url":"/fr/1.9/faq/"}],"prev":{"docname":"faq/install","title":"FAQ : Installation","url":"/fr/1.9/faq/install/"},"next":{"docname":"faq/help","title":"FAQ : Obtenir de l’aide","url":"/fr/1.9/faq/help/"},"formats":{"html":"/fr/1.9/faq/usage/","markdown":"/fr/1.9/faq/usage.md","json":"/fr/1.9/faq/usage.json"},"source":"https://github.com/django/django/blob/stable/1.9.x/docs/faq/usage.txt","official":"https://docs.djangoproject.com/fr/1.9/faq/usage/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","fr","ja","id","pt-br","es"]}