I ont les modèles suivants (simplifié):Django Champ de modèle avec plusieurs types?
class Structure(models.Model):
name=models.CharField(max_length=100, unique=True)
class Unit(models.Model):
name=models.CharField(max_length=100, unique=True)
Chaque modèle, dispose également d'un champ builtFrom, qui montre ce que l'élément est construit à partir, par exemple:
class Unit(models.Model):
name=models.CharField(max_length=100, unique=True)
builtFrom=models.ForeignKey(Structure)
Cependant, builtFrom peut être rempli à partir d'un type d'unité ou d'un type de structure. Y at-il un moyen facile de représenter cela dans mes modèles?
La seule chose que je peux penser est d'avoir un modèle distinct, comme ceci:
class BuiltFromItem(models.Model):
structure=models.ForeignKey(Structure)
unit=models.ForeignKey(Structure)
class Unit(models.Model):
name=models.CharField(max_length=100, unique=True)
builtFrom=models.ForeignKey(BuiltFromItem)
Et alors l'un des champs BuiltFromItem être juste nul. Ensuite, lorsque j'ai besoin des données, déterminez si c'est une structure ou une unité à partir de laquelle elles sont construites. Y a-t-il une meilleure solution pour cela?