3 Réponses :


19
votes

Créer un fichier Paramètres distincts.py pour chaque site, y compris un paramètre Site_Id approprié. Bien sûr, vous pouvez utiliser l'instruction importer pour partager le paramètre courant entre les fichiers.

à partir de maintenant, lors de l'exécution de Django Developer Server Spécifiez l'option - Paramètres pour dire à Django quel site à exécuter.

Par exemple (en supposant que vous avez deux fichiers de réglage - paramètres_first.py et paramètres_second.py): xxx

fonctionnera Le premier site, et xxx

vous donnera un accès au deuxième site.

Vous pouvez également les exécuter simultanément, en spécifiant différents ports: xxx

Les commandes ci-dessus (exécutez deux consoles différentes) rendront le premier site Web accessible sous http://127.0.0.1:8001/ et le second sous http: // 127.0.0.1:8002/


0 commentaires

4
votes

Peut-être que vous êtes induire en erreur par la documentation. Vous avez écrit:

Je comprends que le middleware définit la valeur Paramètres.Site_ID en fonction d'une recherche / cache du domaine de la demande.

Ce n'est pas le cas. Cela fonctionne exactement l'inverse. Django utilise la valeur Paramètres.Site_ID pour rechercher l'objet Site correct dans la base de données. Cela renvoie votre domaine et votre nom de site préféré.

Les sites ont été conçus pour remplir (à mon avis) rare usecase que vous souhaitez avoir plusieurs sites avec la même base de données en arrière-plan. Cela vous permet de publier les mêmes articles sur différents sites, mais vous avez toujours la possibilité que certains modèles soient disponibles uniquement pour un seul site.

Pour développer plusieurs projets (qui ne utilise pas réellement le cadre de sites), vous n'avez pas à spécifier quoi que ce soit spécial. Vous pouvez utiliser le paramètre Site_Id défini sur 1 . Pour utiliser la vue de l'administrateur sur le site Web , vous pouvez définir dans votre base de données de développement, le domaine Site SOCT sur localhost: 8000 . .

Si vous souhaitez développer plusieurs sites à l'aide de la même base de données (et utilisez le cadre de sites), vous devez disposer de chaque projet avec un site distinct mais les mêmes paramètres de la base de données. Les valeurs de site_id dans chaque projet de votre machine de développement sont dans la plupart des cas comme pour vos serveurs de production.


1 commentaires

Merci Gregor. Je soupçonne que je suis grandement induire en erreur. Je vais probablement créer le middleware de faire ce que je faisais ce que Django faisait déjà et que je cherche un attribut de la chaîne de requête 'Site = my-Site-1.com' lorsque le domaine demandé est dans Paramètres.Development_Servers, comme: Si la demande. Meta ['Server_Name'] dans Paramètres.Development_Servers: #do Recherche et définissez le site de la session



-1
votes

FYI - J'ai publié Django-Dynamicsites aujourd'hui, qui a des installations pour résoudre ce problème - https: // bitbucket.org/uysrc/django-dynamicsites/src


1 commentaires

Le lien semble être cassé