Skip to main content
 首页 » 编程设计

python之Django 如何基于 ManyToManyField 进行过滤

2024年10月17日24JustinYoung

假设我有以下 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") 

现在假设我有一个实例 x的 MyClassA . 我在 my_method() 里放了什么这样它就会返回 MyClassB 的所有实例包含 x在他们的领域a ?

请您参考如下方法:

您可以将其定义为:

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

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

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