2010-06-16 3 views
0

J'utilise django 1.2 pour créer une boutique multi-site. J'ai besoin de plusieurs connexions admin pour chaque instance de magasin, par ex.administrateurs mutli django avec différentes bases de données db dans django 1.2 - problème étrange

site.com/au/admin
site.com/uk/admin
et ainsi de suite.

J'ai une classe middleware et un dbrouter qui gère les connexions de base de données en fonction de l'URL. Cela fonctionne bien.

J'essaye d'ajouter une certaine personnalisation par système d'admin basé sur ce qui est disponible pour ce magasin particulier. Alors:

dans admin.py:
si le pays == 'au':
admin.site.register (commandes)
admin.site.register (Paiement)

si le pays == ' uk ':
admin.site.register (Store_locator)
etc.

Hers est le problème: Si je me connecte à la version aU du site du système d'administration affiche les éléments corrects pour l'UA. Si je me connecte alors au Royaume-Uni, il montre toujours la version AU du système d'administration, de sorte que le code ci-dessus ne semble être utilisé sur le premier chargement. si je tue le serveur django et le redémarre, alors allez dans la page d'administration de la boutique différente, il aura reconfiguré pour cette boutique.

Comment puis-je obtenir un changement de pays chaque fois que le système d'administration se charge? Pourquoi ce problème se produit-il en premier lieu?

Toute aide serait grandement appréciée.

Merci, imanc

Répondre

0

Je serais prêt à parier que Django ne lit pas la config admin sur chaque demande, mais chaque fois que le serveur est redémarré - c'est la raison pour laquelle il colle 'à celui que vous avez accédé à la première. Pourquoi ne pas faire quelque chose avec les permissions de Django.contrib.auth pour limiter ce qu'un administrateur particulier peut voir dans l'admin, et enregistrer tous les modèles dans admin.py en standard?

Questions connexes