简体   繁体   English

Django-在自定义模型函数中访问相关模型

[英]Django - accessing related models in custom model function

I have two models: 我有两个模型:

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

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

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

I would like to access in the foo method of ModelB all the ModelA's in the ManyToMany relationship - I have tried this using the above but it says that 'abs' is not a field of ModelB. 我想在ModelB的foo方法中访问ManyToMany关系中的所有ModelA-我已经使用上面的方法进行了尝试,但是它说“ abs”不是ModelB的字段。 How can I fix this? 我怎样才能解决这个问题?

Many thanks 非常感谢

You are missing the return statement at foo method. 您缺少foo方法的return语句。 Please change self.abs.all() by return self.abs.all() . 请通过return self.abs.all()更改self.abs.all() return self.abs.all()

All what you need is: 您需要的是:

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()

I check this and its work. 我检查了它及其工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM