[英]Django 2 Many to Many relationships
我正在使用Python(3.7)和Django(2.1)開發一個項目,我需要在該項目中建立用戶與組織之間的關系。
我正在使用默認的Django用戶模型和配置文件模型向用戶添加其他信息。
許多用戶可以加入一個組織,一個組織可以有許多成員,一個用戶可以創建一個組織,這些行為我需要實現,根據我的理解,我們需要為組織模型建立ManyToMany關系,但是不知道如何使用關系以顯示信息,例如在用戶的個人資料頁面上顯示用戶的組織。
這是我的模型:
class Organization(models.Model):
name = models.CharField(max_length=255, blank=False)
users = models.ManyToManyField(User, related_name='members', null=True)
def __str__(self):
return self.name
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default='media/default.jpg', upload_to='profile_pics')
goals = MultiSelectField(choices=goals_choices, default='')
def __str__(self):
return f'{self.user.username} Profile'
您可以通過以下方式獲取特定用戶的所有組織:
my_user.members.all()
如果要從個人資料訪問:
my_profile.user.members.all()
但是我建議刪除related_name
或重命名它。 如果刪除它,則可以按以下方式訪問所有用戶組織:
my_user.organization_set.all()
my_profile.user.organization_set.all()
對於組織機構,您可以通過以下方式獲取所有用戶:
my_org.users.all()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.