[pyar] Django: CreateView con ManyToMany y modelo intermedio

Nicolas Rebagliati nicolas.rebagliati en aenima-x.com.ar
Dom Sep 15 02:45:54 ART 2013


Al final decidí que al crear el objeto que tiene el m2m no voy a permitir
crear ninguna relación. Y solo crearla cuando ya existe el objetos. De esa
manera no tengo problema

Enviado desde mi iPhone

El 14/09/2013, a las 23:55, Santiago Romero <santi.romero en gmail.com>
escribió:

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
>

_______________________________________________
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/20130915/484697c6/attachment.html>


More information about the pyar mailing list