【发布时间】:2019-11-07 17:23:10
【问题描述】:
我有一个友谊模型:
class Friendship(models.Model):
user = models.ForeignKey(
Account, on_delete=models.CASCADE, related_name="friend1", null=True, blank=True)
other_user = models.ForeignKey(
Account, on_delete=models.CASCADE, related_name="friend2", null=True, blank=True)
date_created = models.DateTimeField(auto_now=True)
objects = FriendshipManager()
class Meta:
verbose_name = "friendship"
verbose_name_plural = "friendships"
unique_together = ("user", "other_user")
def __str__(self):
return f'{self.user} is friends with {self.other_user}.'
此函数返回两个帐户的共同好友的所有用户
def mutual_friends(self, account1, account2):
mutual_friends = Account.objects.filter(
Q(friend2__user=account1) & Q(friend2__user=account2))
return mutual_friends
根据我对查询 api 工作原理的(有限)理解,我认为这应该返回与 Friendship 表有“friend2”关系的所有用户,其中“friend1”用户是 account1 或 account2。我仍然习惯于使用 django 进行查询,所以如果有人可以让我知道我做错了什么,那就太好了。
谢谢!
【问题讨论】:
标签: python sql django django-rest-framework