Django多对多返回列表的相关对象

时间:2015-04-28 17:51:47

标签: python django django-models

模特Stuff和模特Thing之间有很多关系。当Stuff转换为字符串时,我想返回一个组成它的东西列表。

class Thing(models.Model):
    name = models.CharField(max_length=50)

class Stuff(models.Model):
    things = models.ManyToManyField(Thing)

    def __str__(self):
        # Return comma delimited list of things that are related to self

我已经看到使用stuff.thing.all()解决了很多问题。如果我在事物上使用.get()如何过滤Stuff的id?

1 个答案:

答案 0 :(得分:1)

class Stuff(models.Model):
    ...

    def __str__(self):
        return '-'.join([str(thing) for thing in self.things.all()])

打印thing1-thing2-thing3对象时会打印Stuff(您应该在__str__模型中定义Thing方法,否则会打印{{1} }})。

如果您想按Thing object-Thing object-Thing object ID过滤Thing个对象,可以执行以下操作:

Stuff

查看Django docs on lookups