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