【问题标题】:Django many to manyDjango 多对多
【发布时间】:2020-05-07 12:25:49
【问题描述】:

我对 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 循环?

【问题讨论】:

标签: python django django-models


【解决方案1】:

一种可能的方式:

encounters = Encounter.objects.filter(
    department__in=QUERYSET_CONTAINING_DEPARTMENTS,
).distinct()

您可能想阅读:Many-to-one relationships

【讨论】:

  • 这就是我要找的。我正在浏览文档,但您确实需要更深入地研究过滤器方法。谢谢!
猜你喜欢
  • 2017-05-15
  • 2019-09-08
  • 2013-03-28
  • 2015-07-05
  • 2019-09-15
  • 2023-04-06
  • 2022-01-18
  • 2013-04-27
  • 2010-11-26
相关资源
最近更新 更多