2015-05-13 28 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();打印pet.owner.pk' – MikeVelazco

1
profile = Profile.objects.get(id=id_of_profile_you_want) 
list_of_pets = profile.pet_set 
相關問題