通过 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 自动创建了这两个表
我有一个问题,我不知道如何通过同一模型建立多个多对多关系。
这是我的数据库关系:
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 自动创建了这两个表