【问题标题】:How can I write a method within a Django model to retrieve related objects?如何在 Django 模型中编写方法来检索相关对象?
【发布时间】:2010-09-18 06:59:41
【问题描述】:

我有两个模型。我们将它们称为对象 A 和对象 B。它们的设计如下所示:

class Foo(models.Model):
     name = models.CharField()

class Bar(models.Model):
     title = models.CharField()
     Foo= models.ForeignKey('myapp.Foo')

现在,假设我想在 Foo 中创建一个方法,该方法返回引用该 Foo 实例的所有 Bar 对象。我该怎么做?

class Foo(models.Model):
     name = models.CharField()
     def returnBars(self):
         ????

【问题讨论】:

    标签: python django model-view-controller frameworks


    【解决方案1】:

    你可以免费获得这个:

    http://docs.djangoproject.com/en/dev/topics/db/queries/#backwards-related-objects

    默认情况下,您可以访问管理器,通过RELATEDCLASSNAME_set 属性访问相关项目:

    some_foo.bar_set.all()
    

    或者您可以使用ForeignKeyrelated_name 参数来指定应该持有反向关系管理器的属性:

    class Foo(models.Model):
         name = models.CharField()
    
    class Bar(models.Model):
         title = models.CharField()
         foo = models.ForeignKey(Foo, related_name='bars')
    
    ...
    
    some_foo.bars.all()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 2012-03-30
      • 2021-03-03
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多