首页 > 解决方案 > 如何获取通过另一个模型加入的房间用户列表

问题描述

我有 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 但不幸的是我不知道这些东西是如何工作的。如果我的问题是重复的,请给我一些关键字,提前谢谢。

标签: djangodjango-rest-framework

解决方案


您可以通过以下方式获得Rooma Joinwithmyuser存在的 s:

Room.objects.filter(join__user=myuser)

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

Room.objects.filter(join__user=myuser).distinct()

推荐阅读