2013-05-17 56 views
1

我想在django中創建一個到多個模型。 例如我有在django中創建OneToMany模型

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    mobile = 1 #I want OneToMany 
    website = models.URLField() 

class Mobile(models.Model): 
    phone_number = models.CharField(min_length=7, max_length=20) 
    description = models.CharField(min_length=7, max_length=20) 

我該怎麼做這項工作?

回答

3

django中有ForeignKey用於這種關係。

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    website = models.URLField() 


class Mobile(models.Model): 
    phone_number = models.CharField(min_length = 7, max_length = 20) 
    description = models.CharField(min_length = 7, max_length = 20) 
    user_profile = models.ForeignKey(UserProfile) 

一旦你有了這一點,UserProfile對象可以有它可以通過userprof_obj.mobile_set這是一個RelationshipManager訪問的多個手機號碼。要獲取所有手機號碼,您可以執行userprof_obj.mobile_set.all()

+0

我怎麼會得到一個人的所有手機號碼? –

+1

user_profile.mobile_set.all() – oleg

+0

@oleg我正在使用'userprof_obj'來消除歧義。 – Rohan

1

爲什麼你不希望使用多到一的關係

class Mobile(models.Model): 
    user = models.ForeignKey(UserProfile) 
    phone_number = models.CharField(min_length=7, max_length=20) 
    description = models.CharField(min_length=7, max_length=20)