2

我有两个模型:

class ModelA(models.Model):
    b = models.ManyToManyField(ModelB, related_name = 'abs')

class ModelB(models.Model):
    x = models.IntegerField()

    def foo(self):
        self.abs.all() ...

我想在 ModelB 的 foo 方法中访问多对多关系中的所有 ModelA - 我已经使用上面的方法进行了尝试,但它说“abs”不是 ModelB 的字段。我怎样才能解决这个问题?

非常感谢

4

2 回答 2

2

您缺少方法中的return声明foo。请更改self.abs.all()return self.abs.all()

于 2013-01-19T14:26:16.670 回答
-2

您所需要的只是:

class ModelA(models.Model):
    class Meta:
       app_label = 'app'
    b = models.ManyToManyField(ModelB, related_name='abs')

class ModelB(models.Model):
    class Meta:
       app_label = 'app'
    x = models.IntegerField()

    def foo(self):
       return self.abs.all()

我检查了这个及其工作。

于 2013-01-19T17:03:43.250 回答