我有一個模型'狀態'與ManyToManyField'組'。每個組都有一個ManyToManyField'用戶'。我想讓所有的用戶都有一定的地位。我知道我可以對組進行for循環,並將所有用戶添加到列表中。但是組中的用戶可能會重疊,因此我必須檢查用戶是否已經在組中。有沒有更有效的方式來使用查詢做到這一點?有沒有辦法在Django中使用查詢來模擬foreach?
編輯:狀態有一個組列表。每個組都有一個用戶列表。我想從所有組中獲得一個用戶的列表。
模式
class Status(geomodels.Model):
class Meta:
ordering = ['-date']
def __unicode__(self):
username = self.user.user.username
return "{0} - {1}".format(username, self.text)
user = geomodels.ForeignKey(UserProfile, related_name='statuses')
date = geomodels.DateTimeField(auto_now=True, db_index=True)
groups = geomodels.ManyToManyField(Group, related_name='receivedStatuses', null=True, blank=True)
class Group(models.Model):
def __unicode__(self):
return self.name + " - " + self.user.user.username
name = models.CharField(max_length=64, db_index=True)
members = models.ManyToManyField(UserProfile, related_name='groupsIn')
user = models.ForeignKey(UserProfile, related_name='groups')
你能告訴我們你的模型嗎? – Rohan
根據您的模型代碼,您希望成員而不是用戶處於請求狀態的組,對吧?由於每個組只能擁有一個使用此代碼的用戶,我假設您正在嘗試遵循m2m關係。 –
是的,這是正確的。我想彙總所有組的成員。 –