簡體   English   中英

Django-使用related_name'+'嗎?

[英]Django - use of related_name '+'?

在Django1.5文檔中,有一個關於部分related_name 最后一段是“如果您希望Django不要創建反向關系,請將related_name設置為'+'或以'+'結尾。

例如,這將確保User模型不會與此模型具有向后關系: user = models.ForeignKey(User, related_name='+') 什么時候應該在related_name使用“ +”?

創建反向關系時可能會引起沖突。 考慮一下您有一個抽象模型和該模型的兩個子類的情況:

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會拒絕啟動。 考慮到在這種情況下實際上不需要它,因此跳過它是有意義的。

Django docs (禁止反向關系的工具)開始,他們的話是:

如果您不希望Django不創建向后關系,請將related_name設置為'+'或以'+'結尾。

以上答案是正確的,但我想讓其他人更加清楚。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM