2010-06-10 2 views
0

Je souhaite écrire un sniplet de code qui permet de désactiver la connexion à certaines parties d'un site. Admin et la page principale seront affichables, mais la section utilisateur (qui utilise ajax) sera affichée, mais ne peut pas être utilisée (avec un div div transparent sur la page). Il y a aussi quelques pages qui seront désactivées.Ajouter des données supplémentaires à l'objet de réponse à afficher dans le modèle

ma logique est que, j'écris un middleware,

def process_request(self, request): 
    if ayar.tonline_kapali: 
     url_parcalari = request.path.split('/') 
     if url_parcalari[0] not in settings.BAGIMSIZ_URLLER: 
      if not request.is_ajax(): 
       return render_to_response('bakim_modu.html') 
    else: 
     return None 

ce code-moi à afficher un « site fermé » message pour les urls pas BAGIMSIZ_URLLER (qui contient urls qui seront accessibles)

Mais je ne comprends pas comment puis-je résoudre le problème sur les pages ajax ... je dois définir un en-tête ou quelque chose à la réponse et besoin de le vérifier dans le modèle.

+0

probablement, en utilisant process_view va résoudre mon problème ... Mais je besoin d'aide pour l'utilisation de process_view – FallenAngel

Répondre

1

ici documentation for process_view L'utilisation est simple. process_view est appelée juste avant que Django appelle la vue, et obtenir quelques arguments: demande - Demande objet view_func - Voir fonction view_args - Arguments view_kwargs - arguments mots-clés

Quel exemple avez-vous besoin?

+0

je dois passer quelques arguments dans un dictionaty comme le format, comme { « system_status »: « off »} ou comme. et vérifiez la valeur dans le modèle (si possible) ou dans la vue et placez un div sur la page, afin que l'utilisateur ne puisse rien faire d'autre que voir le message. Page utilise ajax comme je l'ai dit, et rafraîchit toutes les quelques secondes, donc tant que 'system_status' est désactivé, la page winn ne sera pas fonctionnelle, mais visible. – FallenAngel

+0

Ainsi, vous pouvez modifier tous les arguments de vue. Vous avez: view_args - Arguments view_kwargs - arguments de mots-clés vous pouvez les modifier et envoyer à vous voir et vérifier certains paramètres vous voir ... ou par exemple créer templatetag pour votre point de vue qui sera vérifier les paramètres envoyé par votre middleware. – Saff

Questions connexes