2013-10-24 85 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会拒绝启动。鉴于你实际上不需要需要它在这种情况下,它是有道理的只是跳过它。

相关问题