Tengo estos tres modelos:
- Persona.
- Proyecto.
- Papel.
Usando el sistema de modelos de Django, ¿cómo representar el hecho de que una persona está participando en un proyecto en particular con un rol específico?
Problema general: ¿Cuál es la forma correcta de manejar "asociaciones ternarias"usando Django?
Respuestas
1 para la respuesta № 1Lo haría utilizando un modelo intermedio para la relación m2m y agregaría un campo allí.
Algo como esto:
class Role(models.Model):
name = models.CharField(max_lenth=32)
class Project(models.Model):
name = models.CharField(max_lenth=32)
class PersonProject(models.Model):
person = models.ForeignKey(".Person")
project = models.ForeignKey(Project)
role = models.ForeignKey(Role)
class Person(models.Model):
projects = models.ManyToManyField(Project, through=PersonProject)