Django 如何基于 ManyToManyField 进行过滤?

Django how to filter based on ManyToManyField?

假设我有以下 Django 类:

在myclassa.py中:

class MyClassA(models.Model):
    name = models.CharField(max_length=254)

    def my_method(self):
        # WHAT GOES HERE?

在 myclassb.py:

from myclassa import MyClassA
class MyClassB(models.Model):
    name = models.CharField(max_length=254)
    a = models.ManyToManyField(MyClassA, related_name="MyClassB_MyClassA")

现在假设我有一个 MyClassA 的实例 x。 我要在 my_method() 中输入什么,以便 returns MyClassB 的所有实例在其字段 a 中包含 x

您可以定义为:

def my_method(self):
    return self.MyClassB_MyClassA.all()

或者,您也可以将其定义为:

def my_method(self):
    return MyClassB.objects.filter(a=self)