Django模型的递归关系

时间:2012-11-01 17:47:56

标签: django recursion models relationship

  1. 为什么要创建递归关系?
  2.     aField = models.ForeignKey('self')
    
  3. 这与上述相同吗?
  4.         class aClass(models.Model):  
            aField = models.ForeignKey('aClass')
    

1 个答案:

答案 0 :(得分:5)

  1. 当您希望父节点和子节点具有相同的模型结构时,可能需要创建递归关系。例如,如果您对text,data和user_id有评论:

    class Comment( models.Model ):
        text = models.TextField()
        create_date_time = models.DateTimeField()
        parent_comment = models.ForeignKey( 'self' )
    
  2. 我认为是(您可以尝试测试),但这不是一个好的形式。如果更改类名,则必须更改括号中的字符串值。如果你使用'self',你就不会头疼。