Si environ la moitié de mes vues nécessite le même ensemble de données, est-il approprié d'utiliser un processeur de contexte pour rendre les données toujours disponibles ou existe-t-il un meilleur moyen d'éviter de répéter le code? données si elle ne sera pas utilisée dans la vue?Quand est-il approprié d'utiliser les processeurs de contexte Django?
Répondre
Le RequestContext
initialiseur se déroulera tous les processeurs de contexte répertoriés dans le fichier de configuration, mais il prend également une liste de processeurs supplémentaires à exécuter. Tous les processeurs de contexte à usage général peuvent être mis dans settings.py et des processeurs plus spécifiques peuvent être ajoutés au RequestContext
au cas par cas.
Laissez RequestContext
complètement pour ne pas exécuter de processeurs de contexte.
# want context processors listed in settings.py as well as some more specific ones
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request, processors = extra_processors))
# want only context processors listed in settings.py
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request))
# no context processors
return render_to_response('template.html', {'foo':'bar'})
Vous pouvez filtrer les vues utilisent effectivement les processeurs de contexte que de passer RequestContext(request)
seulement à ceux qui en ont besoin, par exemple:
# want context processors
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request))
# no context processors
return render_to_response('template.html', {'foo':'bar'})
Je pense que cela va travailler pour cette situation particulière, mais en essayant de penser plus ici: si j'avais 3 ou 4 fonctions du processeur de contexte qui ont été nécessaires par des vues au hasard, à ce moment-là que je devrais juste les importer et appelez-les dans les vues qui en ont besoin? Parce que les processeurs de contexte sont une sorte de chose tout ou rien, n'est-ce pas? – rennat
À droite, les processeurs de contexte dans settings.py sont tous ou aucun avec RequestContext. Une façon plus flexible de le faire serait de sous-classer RequestContext pour chaque ensemble de processeurs que vous voulez et d'y placer les processeurs de contexte, de sorte que vous puissiez avoir SidebarContext et CommentsContext, etc. Cela sortirait également les processeurs de contextes de settings.py, ce qui Rendez-les plus spécifiques aux applications, ce qui est préférable si vous avez de nombreuses applications utilisant des processeurs de contexte. Donc, vous auriez juste besoin d'un bon moyen de les enchaîner ... – tghw
- 1. Quand est-il approprié d'utiliser Time # utc dans Rails 2.1?
- 2. Quand utiliser le 'contexte de diagnostic imbriqué' (NDC)?
- 3. Problème avec le processeur de contexte de Django
- 4. PBS (couple) ne considère pas les processeurs quad core comme 4 processeurs
- 5. Essayer de trouver un contexte approprié pour dessiner un UIImage dans un UIView
- 6. Développement de noyaux pour supporter plusieurs processeurs
- 7. processeur de contexte à l'aide Werkzeug et Jinja2
- 8. Processeurs d'assemblage et multicœurs
- 9. PreviewMouseRightButtonUp ne se déclenche pas quand Contexte Menu est ouvert
- 10. Installation de Curl IDE/RTE sur les processeurs AMD
- 11. Emplacement approprié pour les tâches planifiées
- 12. Comment les processeurs implémentent-ils des instructions comme MUL/MULT?
- 13. Répertoire d'installation approprié
- 14. façon de déterminer prédicat approprié pour les types
- 15. Quel est le raccourci pour les infos de contexte?
- 16. Pourquoi mon processeur de contexte de modèle django n'est pas appelé
- 17. parallèle Linq - Utiliser plus de threads que les processeurs (pour les tâches liées non CPU)
- 18. Quel est l'idiome approprié pour nommer les champs du modèle django qui sont des noms réservés python?
- 19. Workflow - choix de l'environnement hôte approprié
- 20. Ruby combien de vérification d'erreur est approprié?
- 21. Obtenir l'index de hachage approprié C++
- 22. affinité Configuration des processeurs multi-cœurs x86
- 23. paperclip exécuter processeurs sur le style sélectionné
- 24. gcc assembly en ligne pour le changement de contexte
- 25. Comment afficher les messages auth Django uniquement dans l'interface d'administration?
- 26. Quand utiliser les événements C# personnalisés
- 27. Quand ramasser les ordures
- 28. Les divs CSS ne s'empilent pas dans l'ordre vertical approprié
- 29. de Windows Interrompre Contexte
- 30. Borland C++ 6 avec de nouveaux processeurs multi-cœurs?
cela semble être la meilleure réponse à moi – Rasiel
Oui, je l'ai changé parce que le peu de processeurs supplémentaires était ce que j'étais vraiment après. – rennat