django - 如何获取通过另一个模型加入的房间用户列表
问题描述
我有 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 但不幸的是我不知道这些东西是如何工作的。如果我的问题是重复的,请给我一些关键字,提前谢谢。
解决方案
您可以通过以下方式获得Room
a Join
withmyuser
存在的 s:
Room.objects.filter(join__user=myuser)
如果同一人可能User
多次加入同一人Room
,您可以使用:
Room.objects.filter(join__user=myuser).distinct()
推荐阅读
- stored-procedures - [Amazon](500310) 无效操作:"$$" 处或附近未终止的美元引号字符串
- swift - 结果类型通用参数“T”无法快速推断 5
- angular - 您可以使用不同的 sessionid cookie 发送令牌身份验证吗
- javascript - 屏幕在 CSS 中分成两部分
- django - 翻译默认 Haystack 表单模板的标题
- reactjs - typecrpt 错误:键入 'ITreeNode<{}>[] | undefined' 不可分配给类型 'ITreeNode<{}>[]'
- ionic-framework - Ionic 4 上的 AuthGuard 无法按预期工作
- python - 使用 lambda 或应用于具有列表内容的数据框的多列
- java - 使用 Matlab Java API 依赖构建 Spring-Boot Maven 项目
- node.js - 检查 mongodb 文档是否具有未在模式中定义的属性?