如何获取用户通过其他模型加入的房间列表

How can I get list of rooms user joined via another model

我有 3 个模型:用户、房间、加入。我正在尝试获取已加入房间用户的列表,但我不知道如何获取。

# models.py
class User(models.Model):
  full_name = models.CharField(max_length=40)

class Room(models.Model):
  room_name = models.CharField(max_length=40)
  create_by = models.ForeignKey(User, on_delete=models.CASCADE)

class Join(models.Model):
  room = models.ForeignKey(Room, on_delete=models.CASCADE)
  user = models.ForeignKey(User, on_delete=models.CASCADE)

我尝试使用 related_name 和 related_query_name,但不幸的是我不知道这些东西是如何工作的。如果我的问题重复,请提供一些关键字,提前谢谢。

您可以获得 RoomJoinmyuser 存在于:

Room.objects.filter(<strong>join__user=<em>myuser</em></strong>)

如果同一个 User 可能多次加入同一个 Room,您可以使用:

Room.objects.filter(join__user=<em>myuser</em>)<strong>.distinct()</strong>