Buscar este blog

viernes, 28 de junio de 2013

Añadir o borrar de una relación many to many Django

Ejemplo:

class Libro(models.Model):
     titulo = models.CharField(max_length=50)
     capitulo = models.ManyToManyField(Capitulo)

class Capitulo(models.Model):
     nombre = models.CharField(max_length=50)

Tanto para borrar como para insertar en many to many necesitamos obtener el objeto dónde lo vamos a insertar:
item_libro = Libro.objects.get(titulo='Daemon')

Borrar elemento:


Primera forma:
     item_libro.capitulo.remove(1)#Dónde 1 es el id del campo a borrar

Segunda forma:
     item_libro.capitulo.remove(Capitulo.objects.get(nombre='Capitulo primero'))#En caso de no saber el id del capitulo se busca todo el item del capitulo

Insertar elemento


Primera forma:
     item_libro.capitulo.add(Capitulo(nombre='Capitulo segundo'))

Segunda forma:
     item_capitulo = Capitulo(nombre='Capitulo segundo')
     item_capitulo.save()
     item_libro.capitulo.add(item_capitulo)

Nota: La forma que uséis dependerá de lo grande que sea la tabla de la base de datos, en este caso Capitulo tiene sólo un campo.

Enlaces: Eliminar varios items Eliminar un item

Si necesitas ayuda escribe a través del formulario de contacto en la parte derecha.
Nota: Antes de acceder al formulario aparecerá un anuncio, que en 5 segundos podrás cerrar.

No hay comentarios:

Publicar un comentario

Gracias por comentar.

Si has realizado alguna consulta, responderemos lo antes posible. Gracias