[pyar] Django: CreateView con ManyToMany y modelo intermedio

Santiago Romero santi.romero en gmail.com
Sab Sep 14 23:54:42 ART 2013


Hola Nicolás,

2013/9/14 Nicolas Rebagliati <nicolas.rebagliati en aenima-x.com.ar>

> Les hago una pregunta, porque estuve toda la mañana googleando y nada.
> Tengo 2 clases relacionadas con un manytomany mediante un modelo
> intermedio.
>
> El tema es que cuando quiero guardar una mediante una CreateView, me tira
> este error:
>
>
> Cannot set values on a ManyToManyField which specifies an intermediary model.  Use XXXXX's Manager instead.
>
>
> Si modifico el form_valid y la salvo a mano, la crea pero me da error
> igual.
> Alguien tiene idea como se usa el manager como me dice el error en este
> caso?? no puedo encontrarlo en la documentación
>
>
Django no guarda automáticamente las relaciones ManyToMany automáticamente
si usas una tabla intermedia según entiendo. Como dice aquí [1]:

"Unlike normal many-to-many fields, you *can’t* use add, create, or
assignment (i.e., beatles.members = [...]) to create relationships:" [...]

"The simple add, create and assignment calls don’t provide a way to specify
this extra detail. As a result, they are disabled for many-to-many
relationships that use an intermediate model. The only way to create this
type of relationship is to create instances of the intermediate model."

El form.save() entonces falla en algún punto por esto seguramente, creo que
vas a necesitar un form.save(commit=False) y crear las instancias
relacionadas que necesites a mano. Es lo que se me ocurre ahora, aunque
estaría bueno saber un poco más de la traza o el código que estás usando.

Contanos como va, ¡un abrazo!.


[1]:
https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships


> Gracias
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130914/ffa0afc0/attachment.html>


More information about the pyar mailing list