2010-11-18 10 views
0

Ich stelle fest, dass ich viele der gleichen Importe in fast jede Ansicht importiere (render_to_response, simplejson, HttpResponseRedirect und ein paar andere).Standardisierung und einschließlich einiger Importe - Konvention?

Es scheint mir WET, diese gleichen paar Zeilen an der Spitze jeder Ansicht zu haben.

Ist es konventionell, ein Include mit diesen Importen zu erstellen und in viele Ansichten aufzunehmen?

Antwort

1

Wenn Sie etwas bedeuten wie:

# 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, ...) 

Ich habe keine Ahnung, ob es üblich ist, aber ich weiß, dass die ganze Zeit. Es ist kürzer zu schreiben, einfacher zu pflegen und einfach nur DRY.

+0

Hinweis: Es ist offensichtlich, dass in den meisten Dateien, die dieses Zusatzimportmodul verwenden, zusätzliche Dateien importiert werden, die Ihren Namespace möglicherweise verschmutzen. Da Sie jedoch sowohl das Modul "utils" als auch die lokalen Module, die es importieren, kontrollieren können, sollte dies kein Problem darstellen. –

+0

Ja, genau das meine ich. Außerdem können Sie django.shortcuts.render_to_response als Render anstelle der Zuweisung importieren. Ich bin nicht klar über das Problem mit der Namespace Verschmutzung - wie wenn ich Render für etwas anderes verwenden wollte? :-) – jMyles

+0

Sie würden Namespace Verschmutzung bekommen, wenn Sie 'von utils importieren *'. Dies ist jedoch nicht wahrscheinlich, da es so einfach ist, 'utils.rednder' zu verwenden. Ich weiß, dass ich das 'import foo as bar' Formular verwenden kann, aber ich mag die Aufgabe :-) –