2015-05-13 3 views
1

у меня есть две моделей:Как определить метод для возвращения связанных объектов

class Profile(models.Model): 
    user = models.OneToOneField(User, null=True) 
    address = models.CharField(max_length=500) 

    def pets(self): 
     return Pet.objects.filter(owner=self.id) 

class Pet(models.Model): 
    owner = models.ForeignKey(Profile) 
    name = models.CharField(max_length=150) 

Я хочу, чтобы получить доступ к домашнему животному над классом профиля. Когда я звоню profile.pets на терминале, ответ:

<bound method Profile.pets of <Profile: sefa> 

как я получаю домашних животных для объекта профиля?

+0

Вам не нужен метод, 'profile.pet_set.all()' определяется для вас. –

ответ

0

profile.pets - это способ.

Вы должны назвать его

pets = profile.pets() 
+0

Вы также можете получить атрибуты из самого поля fk 'pet = Pet.object.first(); print pet.owner.pk' – MikeVelazco

1
profile = Profile.objects.get(id=id_of_profile_you_want) 
list_of_pets = profile.pet_set 
Смежные вопросы