Modele devolution successorale

Dans le dernier post, nous avons parlé de l`héritage de modèle en ce qui concerne les classes de modèle abstrait, il a été une grande introduction dans l`utilisation de poo avec vos modèles pour garder votre code mince et bien rangé. Vous pouvez le lire à: Django abstract classe de base-héritage de modèle je vois deux inconvénients principaux à ce type d`héritage: dans le code ci-dessus, Notez que nous héritent de contenu et sont en mesure d`accéder aux propriétés de contenu en disant simplement self. content_title. Notez également qu`il n`existe aucune relation de clé étrangère explicite entre les modèles content et Video. Dans le backend, Django mappe ceci à une table appelée appname_video (où AppName est le nom de votre application Django). Veuillez noter que ce modèle hérite du modèle. Modèle. Dans ce post, nous allons discuter héritage multi-table. Nous allons créer un modèle de base, qui n`est pas un modèle abstrait, et hériter du modèle. Ensuite, nous allons vous montrer comment obtenir et référencer des données à partir de cet héritage de modèles. Avez-vous déjà été à la recherche par d`autres peuples code et vu un modèle de classe Meta avec abstract = true? C`est le premier type d`héritage que nous allons examiner, les modèles de base abstraits. Il y a aussi l`héritage multi-table, les modèles proxy et l`héritage multiple disponible. Notez que l`héritage de plusieurs modèles qui ont un champ de clé primaire d`ID commun va déclencher une erreur.

Pour utiliser correctement l`héritage multiple, vous pouvez utiliser un AutoField explicite dans les modèles de base: l`héritage de modèle est une fonctionnalité très utile et puissante de Django, mais utilisé incorrectement, il peut causer beaucoup de confusion. Allons de l`avant et jetez un oeil à certains de ces. vous obtiendrez un tout nouveau lot d`articles, dont la plupart mentionnent l`héritage explicitement. Le deuxième type d`héritage de modèle pris en charge par Django est lorsque chaque modèle de la hiérarchie est un modèle tout seul. Chaque modèle correspond à sa propre table de base de données et peut être interrogé et créé individuellement. La relation d`héritage introduit des liens entre le modèle enfant et chacun de ses parents (via un OneToOneField créé automatiquement). Par exemple: vous ne pouvez pas créer de hiérarchies d`héritage dans lesquelles un type dérivé hérite de plusieurs types. Par exemple, dans un modèle conceptuel avec un type d`entité Book, vous pouvez définir des types dérivés FictionBook et NonFictionBook qui héritent chacun de Book.

Toutefois, vous ne pouviez pas définir un type qui hérite des types FictionBook et NonFictionBook. L`héritage de modèle proxy peut sembler assez similaire à la création d`un modèle non managé, à l`aide de l`attribut managé sur la classe Meta d`un modèle. Dans le code ci-dessus, nous avons créé un modèle appelé Content et défini des propriétés de base telles que l`ID, titre, sous-titres, titre, et tels.