2
  1. 为什么要创建递归关系?
  2.     aField = models.ForeignKey('self')
    
  3. 这和上面的一样吗?
        类aClass(模型。模型):  
        aField = models.ForeignKey('aClass')
4

1 回答 1

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

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

于 2012-11-01T18:01:37.417 回答