python - Django 多对多
问题描述
我对 django 相当陌生,我正在尝试使用以下模型创建一个应用程序
class User(models.Model):
name = models.CharField(max_length=20)
class Group(models.Model):
identifier = models.CharField(max_length=3,primary_key=True)
name = models.CharField(max_length=120)
def __str__(self):
return self.name
class Department(models.Model):
users = models.ManyToManyField(User)
ric = models.CharField(max_length=12,primary_key=True)
name = models.CharField(max_length=60)
def __str__(self):
return self.name
class Encounter(models.Model):
department = models.ForeignKey(Department,on_delete=models.DO_NOTHING)
message = models.CharField(max_length=120)
datetime = models.DateTimeField()
用户最终将成为登录用户。我能够为用户获取一组所有部门对象,但是如何获取具有所述部门集合的所有遭遇的集合?是否有一些内置方式,或者我只是在所有部门上使用 for 循环?
解决方案
可能的方法之一:
encounters = Encounter.objects.filter(
department__in=QUERYSET_CONTAINING_DEPARTMENTS,
).distinct()
您可能想阅读:多对一关系
推荐阅读
- javascript - 在 javascript 对象中搜索任何值
- kubernetes - 如何为 kubernetes 入口基本身份验证设置辅助密钥
- python - Python,如何快速获取步幅(例如 500)的帧?
- r - R中的子集公式对象
- postgresql - 在 PostgreSQL 中找不到函数
- javascript - forEach() 的意外输出
- math - 如何对三个约束变量 (x+y+z=1) 进行 ARIMA 时间序列预测?
- javascript - 需要在节点中的类
- python - 编写 Scrapy 选择器时遇到问题
- python - 用于图像提取的 Python 库