Esta línea
Articulo_Consolidacion.objects.create(articulo=articulo_data,tagicNone,
tono=array_tono, tema__id=None)
No tiene mucho sentido (que es tagicNone?, de donde sale arrary_tono? no
estas usando tag_list ni tema_list...)
Ademas en tu modelo el campo "articulo" de "ArticuloConsolidacion" es un
ManyToManyField pero le estas asignando una instancia especifica en tu
llamado a create ("articulo=articulo_data")
Lo único que te puedo decir es que primero crees y guardes la instancia de
ArticuloConsolidacion SIN setear los campos ManyToMany, y despues de eso
llamar al metodo set de sus campos manytomany para setear esos campos
despues
Saludos
On Fri, Apr 12, 2019 at 7:23 PM <[email protected]> wrote:
> 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]
>
> --
> 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 [email protected].
> To post to this group, send email to [email protected].
> 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
> <https://groups.google.com/d/msgid/django-users/743469b3-1fbf-4002-8d9e-4dd01e37e948%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
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 [email protected].
To post to this group, send email to [email protected].
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/CALn3ei1xa3%2BeRCcw8fLpnRGS_NY%2BDqzBGAch6mgP6qcAOEfW%2BA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.