2013-03-11 145 views
2
class One(models.Model): 
    image = models.ImageField(upload_to="images") 
    summary = models.TextField() 

    def __unicode__(self): 
     return self.summary 


class Two(models.Model): 
    image = models.ImageField(upload_to="images") 
    title = models.CharField(max_length=50) 

    def __unicode__(self): 
     return self.title 


class Three(models.Model): 



    one = models.ForeignKey(One, related_name='one_home') 
    two = models.ForeignKey(Two, related_name='two_home') 

    def __unicode__(self): 
     return self.tile 

現在我想要顯示一個和兩個在Django Admin中的三個內聯。Django管理內嵌顯示,但外鍵有相反的關係

我到處搜索,但內聯顯示給出了相反的關係。就像一個有三個外鍵的地方一樣。而不是我想要的其他方式。

+0

這是完全可以顯示一個和二爲三的內聯,你只需要移動的關係船到其他型號。在模型三中定義這些關係有什麼原因嗎? – 2013-03-11 13:34:31

+0

是的模型必須是像我這樣的要求...我不想在模型上做出改變 – KetanJogani 2013-03-11 15:14:18

+0

這似乎在Django admin中不可行,因爲當構建'Three'時,它需要有'One'的ID和可以保存前兩個''。 Django管理員無法告訴它「保存一個,然後保存兩個,然後保存三個」。它將嘗試使用一條SQL命令將所有內容保存到數據庫。你必須改變你的模型才能以你想要的方式工作。 – themanatuf 2013-03-11 15:18:25

回答

0

相當簡單:

您的模型是「破碎」,三個可以只有1個1和1兩個。

對於One and Two實體,您可以列出三個列表。

如果顛倒外鍵,改變他們的(都指向@三)款

class OneToThreeInline(admin.StackedInline): 
    fk_name = 'three' 
    model = One 

class TwoToThreeInline(admin.StackedInline): 
    fk_name = 'three' 
    model = Two