2010-09-20 7 views
0

J'ai une application Django où les utilisateurs peuvent choisir entre 2 modes d'interface, ce mode affecter certaines pages ... pour ces pages que j'utilise différents modèleseffacer le cache du modèle

En urls.py j'ai quelque chose comme ceci:

mode = Config.objects.get().mode 
urlpatterns = patterns('', 
    url(r'^my_url/$', 'custom_view', {'template':'my_template.html', 'mode':mode}), 
) 

Alors moi est quelque chose comme ceci:

@render_to() 
def custom_view(request, template, mg=False, login=True): 
    if mode: 
     template = template + 'x' #I add an x to the template name to advice to django I that it should use the mode_2 template. 
    return {'TEMPLATE':template} 

mon problème est lorsque l'utilisateur sélectionne le mode 2 (dans ma page de configuration personnalisée), le mode ne change pas jusqu'à ce que le serveur est redémarré (EIT son apache ou runserver.py est le même).

Je pense que cela doit faire quelque chose avec le cache, mais je ne peux pas trouver comment effacer ce cache. (chaque fois que Config.mode est modifié.)

Répondre

3

L'obtention du mode dans urls.py ne fonctionne pas. Le get ne sera exécuté qu'une fois, lors de la première importation du fichier.

La base de données fonctionne-t-elle plutôt dans la fonction de visualisation.

+0

+1. 'urls.py' est chargé une seule fois. Ce n'est pas le meilleur endroit pour la configuration dynamique. –

+0

+1. Nous avons un 'startup.py' importé par' urls.py' et utilisé pour contenir le script de démarrage unique. –

Questions connexes