如何使用外键获取相关对象?

时间:2015-06-02 19:31:44

标签: python django orm model

我有一个person可能有很多images。 我想这样使用:person.image[x].image来检索我的image地址。如何使用foreign key personimages进行关联?并使用images对象访问他们的person

class Person(models.Model):
    user = OneToOneField(User, on_delete=models.CASCADE)
    gender = CharField(max_length=1, choices=GenderChoices, blank=True, null=True)
    birth_date = DateField(blank=True, null=True)

    def __unicode__(self):
        return self.user.username

class Image(models.Model):
    person = ForeignKey(Person)
    itype = CharField(max_length=1, choices=ImageChoices)
    image = ImageField(upload_to=image_path, blank=True, null=True)
    created = DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return self.image.path

1 个答案:

答案 0 :(得分:1)

person.image_set.all()是一种方式,如果需要,您还可以针对给定查询过滤人物的图像,例如persom.image_set.filter(...),如果您只是想要点数,person.image_set.count()

您可以在此处详细了解如何查询相关对象:https://docs.djangoproject.com/en/1.8/topics/db/queries/#related-objects