2011-10-29 20 views
3

文本是從Django文檔,其提供在Django中,遞歸關係和未定義模型的關係有什麼用?下面

要創建一個遞歸 關係 - 其具有與自身多到一的關係的對象 - 使用models.ForeignKey(」自我」)。 如果您需要在尚未定義的模型上創建關係,則可以使用模型的名稱 而不是模型對象本身。

有人可以給我一個在Django中使用這些功能的例子嗎? 謝謝

回答

3

您可以使用它來創建此模型的其他對象的鏈接。

例如,如果你有很多成員在一個網站和每一個有一個邀請(也會員類型的),你可以做到以下幾點:

class Member(Model): 
    inviter = models.ForeignKey(
     'self', 
     related_name="invited_set" 
    ) 

如果你想邀請人,你這樣做:

Member.objects.get(id__exact=5).inviter 

如果希望所有成員,該成員已邀請您使用:

Member.objects.get(id__exact=5).invited_set 
1

對於型號尚未德被罰款:

class Gallery(models.Model): 
    title_image = models.ForeignKey('Image') 

class Image(models.Model): 
    part_of = models.ForeignKey(Gallery) 

由於這些類彼此相互引用,至少其中一個需要引用尚未定義的類。