2015-06-02 2 views
0

У меня есть person, который может иметь много images. Я хотел бы использовать вот так: person.image[x].image, чтобы получить мой адрес image. Как я могу связать использование foreign key a person с их images? И получить доступ к их 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

person.image_set.all() является одним из способов, и при необходимости вы можете также фильтровать через образы человека для данного запроса, например, persom.image_set.filter(...), и если вы просто хотите, граф, person.image_set.count()

Вы можете прочитать больше о том, как запрашивать связанные объекты здесь: https://docs.djangoproject.com/en/1.8/topics/db/queries/#related-objects

Смежные вопросы