Foros del Web » Programando para Internet » Python »

Django crear modelo con dos niveles

Estas en el tema de Django crear modelo con dos niveles en el foro de Python en Foros del Web. Buenas Tardes a todos. De ante mano, muchas gracias por intentar ayudarme. Me encuentro con el siguiente problema. Tengo que crear un modelo en Django ...
  #1 (permalink)  
Antiguo 01/03/2015, 10:07
 
Fecha de Ingreso: mayo-2011
Mensajes: 21
Antigüedad: 12 años, 10 meses
Puntos: 3
Exclamación Django crear modelo con dos niveles

Buenas Tardes a todos.
De ante mano, muchas gracias por intentar ayudarme.

Me encuentro con el siguiente problema.

Tengo que crear un modelo en Django donde un usuario pueda seleccionar diversos servicios y mediante que metodo presta ese servicio, para mostrarlo en una seccion de detalles. es decir:

Limpieza de casa (Servicio1)
--- personal propio (metodo)
--- personal subcontratado (metodo)
--- mixto (metodo)
Limpieza de coche (Servicio2)
--- personal propio (metodo)
--- personal subcontratado (metodo)
--- mixto (metodo)

y así para unos 30 servicios. Los metodos son siempre los mismos, pero cada usuario dado de alta puede seleccionar los servicios y metodos de cada servicio de manera individual. Con lo que yo como visitante podre ver en el detalle de cada usuario que servicio presta y mediante que metodo.

¿Como podrías hacerlo? ¿me puede echar una mano? por favor.

el modelo que tengo actualmente es el siguiente:

Código Python:
Ver original
  1. class usuarios(models.Model):
  2.     name = models.CharField("Nombre", max_length=140)
  3.     apellidos = models.CharField("Nombre", max_length=255)
  4.  
  5. class Servicios(models.Model):
  6.     servicio = models.CharField("Servicio", max_length=255)
  7.  
  8.     def __unicode__(self):
  9.         return self.servicio
  10.  
  11.     class Meta:
  12.         verbose_name=u'Servicio'
  13.         verbose_name_plural=u'Servicios'
  14.  
  15. class Metodo_servicio(models.Model):
  16.     metodo = models.CharField("Metodo", max_length=200)
  17.  
  18.     def __unicode__(self):
  19.         return self.metodo
  20.  
  21.     class Meta:
  22.         verbose_name=u'Metodo'
  23.         verbose_name_plural=u'Metodos'
  24.  
  25. class RelSubServicios(models.Model):
  26.     usuario = models.ForeignKey(usuarios, related_name='usuarios')
  27.     subservicio = models.ManyToManyField(Metodo_servicio)
  28.     serv_met = models.ManyToManyField(Servicios)
  29.  
  30.     def __unicode__(self):
  31.         return self.proveedor.nom_entity
  32.  
  33.     class Meta:
  34.         verbose_name=u'Rel_Metodo'
  35.         verbose_name_plural=u'Rel_Metodos'
De esta manera me crea el modelo pero me deja seleccionar en la tabla RelSubServicios, varios servicios para el mismo Metodo (Esto no esta bien) y tambien vi en la documentación que existe la posibilidad de crear tablas intermedias para extender la info.
¿Como puedo crear un modelo para realizar esta labor?

Última edición por razpeitia; 01/03/2015 a las 14:11

Etiquetas: django
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 16:31.