同时使用两个django模型管理器

同时使用两个django模型管理器,django,django-models,django-managers,Django,Django Models,Django Managers,如果我有以下两种型号: class A(model.Models): name = models.CharField(max_length = 10) class B(model.Models): name = models.CharField(max_length = 10) a = models.ForeignKey(A) type = models.CharField(max_length = 10) 我想得到这样一个对象: 它的名字叫“testa” 与

如果我有以下两种型号:

class A(model.Models):
    name = models.CharField(max_length = 10)

class B(model.Models):
    name = models.CharField(max_length = 10)
    a = models.ForeignKey(A)
    type = models.CharField(max_length = 10)
我想得到这样一个对象:

  • 它的名字叫“testa”
  • 与之相关的B对象中至少有一个具有名称“testb” 然后键入“typeb”
  • 现在查询涉及两个管理器,即A.objects和A.b_set,我想知道如何同时进行查询

    我不希望两个查询集相交,因为其中一个查询集可能大到足以导致性能问题

    a_queryset = A.objects.filter(name='testa', b__name='testb').distinct()
    
    基本上是模型名称的小写字母


    消除任何重复的
    A
    对象

    Wow,请不要注意这一点。那他们为什么要发明一个布景管理器呢?对象管理器就足够了。这是用于queryset的,而_集是用于单个对象的。我编辑了我的问题,你能再帮我一次吗?新问题的关键是同一个对象b必须满足两个条件I不理解您需要什么如果您使用现有代码创建一个新问题,您有更好的机会得到一个好答案。