2013-10-24 83 views
0

在Django1.5文檔中,有一個關於related_name的部分。最後一段是「如果你想讓Django不要創建向後關係,請將related_name設置爲'+'或以'+'結尾。Django - 使用related_name'+'?

例如,這將確保用戶模型不會有向後關係到這個模型:user = models.ForeignKey(User, related_name='+')什麼時候應該使用「+」與related_name

+1

當你不想創建一個向後關係。 –

+0

如果我有倒退關係,我可以方便地訪問相關的對象。爲什麼不使用它?我的意思是說「+」還有另一個目的。 – zhan

+0

這是唯一的目的。 –

回答

0

可能形成一種反向關係時會導致衝突考慮這樣的情況,你有一個抽象的模型和兩個子類。?。表示型號:

class MyAbstractModel(models.Model): 

    class Meta(object): 
     abstract = True 

    book = models.ForeignKey(Books, related_name="+") 

class MyThing(MyAbstractModel): 
    name = models.CharField(max_length=128) 

class MyOtherThing(MyAbstractModel): 
    number = models.PositiveIntegerField() 

沒有使用"+",你會得到命名衝突,Django會拒絕啓動。鑑於你實際上不需要需要它在這種情況下,它是有道理的只是跳過它。

相關問題