2010-11-18 31 views
0

Je remarque que j'importe beaucoup des mêmes importations dans presque toutes les vues (render_to_response, simplejson, HttpResponseRedirect, et quelques autres).Normalisation et inclusion de certaines importations - convention?

Il me semble WET d'avoir ces mêmes lignes au sommet de chaque vue.

Est-il normal de créer une inclusion avec ces importations et de l'inclure dans de nombreuses vues?

Répondre

1

Si vous voulez dire quelque chose comme:

# utils.py 
import django.shortcuts 
import simplejson 
render = django.shortcuts.render_to_response 
asjson = simplejson.loads 
tojson = simplejson.dumps 

# views.py 
import utils 

def myview (request, ...): 
    # ... 
    stuff = utils.asjson(some_presumable_json_formatted_data) 
    # ... 
    return utils.render(template_name, ...) 

Je ne sais pas si elle est classique, mais je le fais tout le temps. Il est plus court à taper, plus facile à entretenir et tout simplement DRY.

+0

Remarque: il est évident que certains éléments supplémentaires seront importés dans la plupart des fichiers utilisant ce module d'importation auxiliaire, ce qui pourrait polluer votre espace de noms. Cependant, puisque vous avez le contrôle sur le module 'utils' et les modules locaux qui l'importent, cela ne devrait pas poser de problème. –

+0

Oui, c'est exactement ce que je veux dire. En outre, vous pouvez importer django.shortcuts.render_to_response comme rendu au lieu de l'affectation. Je ne suis pas clair sur le problème de la pollution de l'espace de noms - comme si je voulais utiliser le rendu pour autre chose? :-) – jMyles

+0

Vous obtiendriez la pollution de l'espace de noms si vous 'd'utils import ''. Cependant, ce n'est pas probable, car il est si facile d'utiliser 'utils.rednder'. Je sais que je peux utiliser le formulaire 'import foo as bar', mais j'aime bien le devoir :-) –