Django如何根据ManyToManyField进行过滤?

时间:2016-08-25 23:19:14

标签: python django django-models django-queryset

假设我有以下Django类:

在myclassa.py中:

.cart-remove {
    width: 20px;
    height: 20px;
    position: absolute;
    top: -5px;
    right: -5px;
    background-color: #fff;
    border-radius: 50%;
    text-align: center !important;
}

在myclassb.py中:

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

    def my_method(self):
        # WHAT GOES HERE?

现在假设我有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个实例?

1 个答案:

答案 0 :(得分:2)

您可以将其定义为:

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

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

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