Hola, tengo una duda acerca de como guardar many to many en Django , 
agradecería mucho sus ayudas



En la tabla de artículos cargo los datos, luego quiero asociarlos con la 
tabla temas, pero cuando hago el save me sale este error


Guardo primero todos los articulos.


*TypeError: Direct assignment to the forward side of a many-to-many set is 
prohibited. Use articulo.set() instead.*


Busque el error y ya instacio el id del articulo que guarde, pero me sigue 
saliendo el mismo error:

 de esta manero lo guardo

   


     articulo_data = Articulo.objects.get(id=dato) #instancia de articulo


        #TAGS

        taglist =  []

        for tag in tags: 

            tags = Tag.objects.get(id=tag)

            taglist.append(tags)

        print(taglist)


        #TEMAS

        temalist =  [] 

        for topic in topics_array:

            tema = Tema.objects.get(nombre=topic)

            temalist.append(tema)

        print(temalist)


        save = 
Articulo_Consolidacion.objects.create(articulo=articulo_data,tagicNone, 
tono=array_tono, tema__id=None)





Estos son mis modelos

------------------------------------------------------

class Articulo(models.Model):

    titulo = models.CharField(max_length=255, blank=True)

    texto = models.TextField()

    url = models.CharField(max_length=255)

    fuente = models.ForeignKey(Fuente, on_delete=models.CASCADE)

    fecha = models.DateTimeField(null=True)

    created_at = models.DateTimeField(auto_now_add=True, auto_now=False, 
verbose_name=u'Fecha de creación')

    ubicacion = models.CharField(max_length=255)

    tipo_facebook = models.CharField(max_length=255)

    id_articulo_facebook = models.CharField(max_length=255,blank=True, 
null=True)

    proyecto = models.ManyToManyField('Proyecto')

    finished = models.BooleanField(verbose_name=u'Finalizado', 
default=False)

    asignado = models.BooleanField(verbose_name=u'Asignado', default=False)

    state = models.BooleanField(verbose_name=u'Para borrar', default=False)

    recategorisation = models.BooleanField(verbose_name=u'Recategorizar', 
default=False)

    history = HistoricalRecords()

----------------------------------------------------------


class Articulo_Consolidacion(models.Model):

    state = models.BooleanField(verbose_name=u'Prueba', default=False)

    articulo = models.ManyToManyField('Articulo')

    tag = models.ManyToManyField('tag')

    tema = models.ManyToManyField('Tema')

    tono = models.ManyToManyField('Tono')

    narrativa = models.ManyToManyField('Narrativa')

    nivelpromocion = models.ManyToManyField('NivelPromocion')

    posicion = models.ManyToManyField('Posicion')

    brand_love = models.ManyToManyField('BrandLove')

    promocion = models.ManyToManyField('Promocion')

    created_at = models.DateTimeField(auto_now_add=True)

    updated_at = models.DateTimeField(auto_now=True)

    history = HistoricalRecords()

    id_comentario = models.CharField(max_length=255,null=True)
------------------------------------------
class Tema(models.Model):
    nombre = models.CharField(max_length=255)
    history = HistoricalRecords()
---------------------------------------------





[image: Captura de pantalla de 2019-04-12 18-07-56.png] 
<about:invalid#zClosurez>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/743469b3-1fbf-4002-8d9e-4dd01e37e948%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to