Esto podría parecer una pregunta subjetiva, pero estoy seguro de que hay buenas técnicas que algunos de ustedes emplean para garantizar que las importaciones en los proyectos de Django se mantengan factibles. Estoy acostumbrado a tener una lista de aproximadamente 30 importaciones diferentes en cada archivo, y eso claramente viola el principio DRY. Entonces, no solo se trata de estética, también se trata de no duplicar el código.¿Cómo mantener las importaciones ordenadas en Django?
Estoy buscando un método que mantenga manejables las secciones de importación en los archivos de Django. Lo que me parece una buena idea es tener un archivo genérico de importación para cada tipo de archivo (vistas, modelos, etc.), que luego se importa en la parte superior, con más importaciones específicas de la aplicación después de eso. Pero, ¿eso causaría una gran cantidad de gastos indirectos innecesarios? ¿Cómo deberían verse esos archivos y cuáles son las clases importantes para cada tipo de archivo?
actualización
A petición, aquí es un ejemplo de uno de mis views.py
archivos.
from django.shortcuts import render_to_response, get_object_or_404
from shortcuts import render_to_context, render_template
from django.http import HttpResponseRedirect
from django.contrib.comments.models import Comment
from django.template import RequestContext
from django.contrib.auth.decorators import login_required
from django.views.decorators.http import require_POST
from django.core.urlresolvers import reverse
from models import Listing, LocationData
from django.template import RequestContext
import sys
import urllib
if sys.version_info <= (2, 5):
import simplejson as json
else:
import json
import forms
import sanitize
from models import RentListing, VacationListing, SaleListing
from django.forms.models import model_to_dict
from django.forms.formsets import formset_factory
from django.core.urlresolvers import reverse
que, como se puede ver, es realmente complicado, ya que acabo de añadir a la parte inferior de la lista cada vez que necesito algo en el archivo. Mantenerlo en orden alfabético obviamente ayudaría, pero tiene que haber una forma mejor de generalizar que lo que estoy haciendo ahora.
¿Vale la pena romper la pauta de estilo de no usar la importación *
por el bien de secciones de importación más cortas y más mantenibles en el archivo real?
Supongo que es posible mantener la lista de importación corta importando 'django', pero eso solo daría lugar a una cantidad ridícula de tipeo y recuperación de memoria en el resto del archivo –
Una gran pregunta. ¿Puedes pegar un ejemplo de código concreto? –