/ / Association Django entre trois modèles - django, conception de base de données, modèles django

Association Django entre trois modèles - django, design de base de données, django-models

J'ai ces trois modèles:

  • La personne.
  • Projet.
  • Rôle.

En utilisant le système de modèles de Django, comment représenter le fait qu’une personne participe à un projet particulier avec un rôle spécifique?

problème général: quelle est la bonne façon de gérer "associations ternaires"utiliser Django?

Réponses:

1 pour la réponse № 1

Je le ferais en utilisant un modèle intermédiaire pour la relation m2m et ajouterais un champ là-bas.
Quelque chose comme ça:

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)