Foros del Web » Programando para Internet » Python »

Manejo de tablas grandes con django - postgresql

Estas en el tema de Manejo de tablas grandes con django - postgresql en el foro de Python en Foros del Web. Tengo una tabla de enfermedades que tiene solo 3 columnas: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original El id automático .     Un código VARCHAR ...
  #1 (permalink)  
Antiguo 15/12/2015, 17:20
Avatar de dianacaro  
Fecha de Ingreso: agosto-2015
Ubicación: Cali Colombia
Mensajes: 8
Antigüedad: 2 años, 3 meses
Puntos: 0
Mensaje Manejo de tablas grandes con django - postgresql

Tengo una tabla de enfermedades que tiene solo 3 columnas:

Código SQL:
Ver original
  1. El id automático.
  2.     Un código VARCHAR(10).
  3.     El nombre string.

Pero, tiene 14197 registros.

El problema es que su llave primaria (Primary Key) es llave foránea para otros modelos, pero está demorando mucho en cargarla.

Uso django y PostgreSql, ¿qué es lo más recomendable para que no se demore tanto la carga de esa Foreign Key en el template?

#modelos

Código Python:
Ver original
  1. class Cie10(models.Model):
  2.         codigo = models.CharField(max_length=10)
  3.         nombre = models.TextField()
  4.         def __unicode__(self):
  5.             return (u"%s (%s)"%(self.nombre, self.codigo)).strip() or "-"
  6.  
  7.     class EnfermedadGeneral(Enfermedad):
  8.         dias = models.IntegerField(validators=[no_negativo])
  9.         cie10 = models.ForeignKey(Cie10, verbose_name="diagnóstico Cie10")
  10.         soportes = models.FileField(upload_to=crear_ruta_archivo_enfermedad_general, blank=True, null=True)

#Ejemplo de Form

Código Python:
Ver original
  1. class EnfermedadGeneralForm(forms.ModelForm):
  2.         class Meta: model = EnfermedadGeneral
  3.         exclude = ('responsable', 'persona', 'sucursal', 'area', 'cargo', 'tipo_empleado', 'fecha_ingreso', 'fecha_diligenciamiento',)
  4.         widgets = {
  5.             'fecha' : MyDateWidget(),
  6.             'municipio': Select2Widget(),
  7.             'cie10': Select2Widget(),
  8.             'soportes' : MyFileInput(), }

#Formulario en el template

Código HTML:
Ver original
  1. <form class="form-vertical" enctype="multipart/form-data" method="post">{% csrf_token %}
  2.         {% bootstrap_form form layout="horizontal" %}
  3.         <button class="btn btn-lg btn-primary pull-right" type="submit" onclick="$('#id_dia_semana').attr('disabled', false);">
  4.             Registrar <i class="fa fa-check"></i>
  5.         </button>
  6.     </form>

Última edición por razpeitia; 20/12/2015 a las 13:32
  #2 (permalink)  
Antiguo 27/03/2016, 06:04
 
Fecha de Ingreso: febrero-2008
Ubicación: Caravana
Mensajes: 454
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Manejo de tablas grandes con django - postgresql

Instalate la debug tolbar para saber que consultas son las que esta haciendo y asi luego les puedas hacer un explain.
  #3 (permalink)  
Antiguo 27/03/2016, 13:56
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 12 años, 8 meses
Puntos: 1360
Respuesta: Manejo de tablas grandes con django - postgresql

Puedes poner la vista? Probablemente es ahí donde no estes haciendo un select_related.

Etiquetas: django, postgresql, tables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:16.