Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Save Relacion ManyToMany tabla intermedia

Estas en el tema de Save Relacion ManyToMany tabla intermedia en el foro de Python en Foros del Web. Buen día maestros Esto me está rompiendo la cabeza, les explico Tengo 3 modelos en ManyToMany, User y Compound que ambos se van a relacionar ...
  #1 (permalink)  
Antiguo 09/04/2013, 18:21
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 19 años, 2 meses
Puntos: 14
Save Relacion ManyToMany tabla intermedia

Buen día maestros

Esto me está rompiendo la cabeza, les explico

Tengo 3 modelos en ManyToMany, User y Compound que ambos se van a relacionar en UserCompound, el problema que no se la forma correcta de hacer el save(), les paso el código de los modelos

Código Python:
Ver original
  1. class Compound(models.Model):
  2.     name = models.CharField(max_length=50)
  3.     slug = models.SlugField()
  4.     date = models.DateField(auto_now_add = True)
  5.     user_compound = models.ManyToManyField(User, through='UserCompound', blank=True)
  6.  
  7.     class Meta:
  8.         app_label = 'compound'
  9.         db_table = 'compound'

Código Python:
Ver original
  1. class UserCompound(models.Model):
  2.     compound = models.ForeignKey(Compound)
  3.     user =  models.ForeignKey(User)
  4.     role = models.ForeignKey(Role)
  5.     class Meta:
  6.         app_label = 'compound'
  7.         db_table = 'auth_user_compound'

Para el modelo User estoy usando el que viene con django auth_user

Ahora bien, me gustaria conocer la mejor forma de que al crear un nuevo Compound se inserte el registro respectivo en en la tabla UserCompound

Actualmente lo logré asi

Código Python:
Ver original
  1. compound_form = CompoundCreateForm(data)
  2.     if compound_form.is_valid():
  3.         new_compound = compound_form.save()
  4.         UserCompound.objects.create(user_id=request.user.id, compound_id=new_compound.pk)

Pero estuve leyendo cosas como save_m2m() y la funcion add(), pero no entendí como usarlas

Me gustaría saber la forma correcta en la que se hace esto


Mil gracias
__________________
Juegos
Juegos iphone
  #2 (permalink)  
Antiguo 14/04/2013, 08:52
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Save Relacion ManyToMany tabla intermedia

Usar formularios es una de las formas mas correcta de hacer las cosas.

Sin embargo, si quieres aprender sobre relaciones many to many, puedes leer la documentación. https://docs.djangoproject.com/en/de.../many_to_many/

Y sobre save_m2m es en el formulario, si vas hacer una modificación antes de guardar.

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 10:31.