From 473ab4610ef90be05f09127aa37cd20bcda5875e Mon Sep 17 00:00:00 2001 From: Jeremy Satterfield Date: Thu, 17 Aug 2017 13:06:29 -0500 Subject: [PATCH] Fixed #28332 -- Fixed diamond inheritence example in docs. --- docs/topics/db/models.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/topics/db/models.txt b/docs/topics/db/models.txt index 2c8a47852f..396be4088f 100644 --- a/docs/topics/db/models.txt +++ b/docs/topics/db/models.txt @@ -1346,15 +1346,20 @@ use an explicit :class:`~django.db.models.AutoField` in the base models:: class BookReview(Book, Article): pass -Or use a common ancestor to hold the :class:`~django.db.models.AutoField`:: +Or use a common ancestor to hold the :class:`~django.db.models.AutoField`. This +requires using an explicit :class:`~django.db.models.OneToOneField` from each +parent model to the common ancestor to avoid a clash between the fields that +are automatically generated and inherited by the child:: class Piece(models.Model): pass class Article(Piece): + article_piece = models.OneToOneField(Piece, on_delete=models.CASCADE, parent_link=True) ... class Book(Piece): + book_piece = models.OneToOneField(Piece, on_delete=models.CASCADE, parent_link=True) ... class BookReview(Book, Article):