Definir relación ManyToMany en otra aplicación en Django
Pregunta
Tengo Aplicaciones usuarios y proyectos y me gustaría definir otra aplicación llamada Papeles para extender django-auth para la función de cada proyecto.
he definido ProjectMembership en la aplicación Roles como un modelo de relación ManyToMany personalizado. Pero, ¿cómo puedo definir el campo M2M de usuario o modelo de proyecto con la declaración through
?
Así que la pregunta es si podemos definir el campo del modelo de otra aplicación?
Solución
No creo que es posible, e incluso si es posible, entonces es en mi opinión una muy mala solución.
creo que su mejor opción es crear el modelo ProjectMembership con dos FK, uno a uno de usuario y proyectar. Entonces usted tiene un Manual M2M relación, y que sólo no puede utilizar todo muy bien cuenta con Django para trabajar con las relaciones M2M.
Si desea embargo estas características (que no son necesarios), entonces debería modificar el Usuario o el modelo del proyecto.
Otros consejos
Sí se puede, Django creará automáticamente la relación inversa para usted. Uso related_name
para darle un nombre!
Modificar (dinero parches) el modelo User
no es una buena idea. Si desea ampliar, hacerlo bien a través de:
- herencia
- un perfil de objeto (que es la forma recomendada por Django).