J'essaye d'hériter le modèle sur mon site alimenté par Django afin d'adhérer à DRY. Mon but est d'utiliser une classe de base abstraite appelée BasicCompany pour fournir les informations communes pour trois classes enfants: Butcher, Baker, CandlestickMaker (ils sont situés dans leurs propres applications sous leurs noms respectifs).Résumé de l'héritage de la classe de base dans Django avec foreignkey
Chacune des classes enfants a besoin d'un nombre variable de choses comme des adresses e-mail, des numéros de téléphone, des URL, etc., allant de 0 à plus. Je veux donc une relation many-to-one/ForeignKey entre ces classes et la société à laquelle elles se réfèrent. Voici à peu près ce que j'imagine BasicCompany/models.py ressemblant à:
from django.contrib.auth.models import User
from django.db import models
class BasicCompany(models.Models)
owner = models.ForeignKey(User)
name = models.CharField()
street_address = models.CharField()
#etc...
class Meta:
abstract = True
class EmailAddress(models.model)
email = models.EmailField()
basiccompany = models.ForeignKey(BasicCompany, related_name="email_addresses")
#etc for URLs, PhoneNumbers, PaymentTypes.
Ce que je ne sais pas comment faire hériter est EMAILADDRESS URL, PHONENUMBERS (etc.) dans les classes d'enfants. Peut-il être fait, et si oui, comment? Sinon, j'apprécierais vos conseils sur les solutions de contournement.
Merci Daniel. J'avais regardé les types de contenu et les relations génériques hier, mais ça n'a pas vraiment cliqué. Je vais essayer maintenant et voir si cela résout le problème. –