通过 Django 问题中的同一模型实现多个多对多关系

Multiple many-to-many relations through the same model in Django problem

我有一个问题,我不知道如何通过同一模型建立多个多对多关系。

这是我的数据库关系:

Db architecture

这是我的代码,我想知道我做的是否正确?

class Projects(models.Model):

  Project_name = models.CharField(max_length=50)
  Poject_key = models.CharField(max_length=50)
  CITools = models.ForeignKey(CITools,null=True,on_delete=models.CASCADE)

  UsersO = models.ManyToManyField(User,through='OwnerShips') # for user Ownerships
  UserF = models.ManyToManyField(User,through='Favorites') # for user Favorites

这是我的所有者 class :

class OwnerShips(models.Model):
  user = models.ForeignKey(User,on_delete=models.CASCADE)
  project = models.ForeignKey(Projects,on_delete=models.CASCADE)

这是我的最爱Class:

class Favorites(models.Model):
  user = models.ForeignKey(User,on_delete=models.CASCADE)
  project = models.ForeignKey(Projects,on_delete=models.CASCADE)

我认为您不能在创建 类 之前在 Project 中使用外键(所有权和收藏夹)。

实际上我找到了解决方案,我使用了属性 related_name,所以 Django 自动创建了这两个表