J'essaie d'obtenir un modèle Django pour construire automatiquement une valeur __str __ (self) typique pour lui-même (dans la définition du modèle), mais basée sur 3 ManyToMany Fields. Contrairement à l'utilisation des types de champs de base (comme dans les deux premiers modèles), cela ne semble pas fonctionner pour les champs M2M (voir le troisième modèle). Le modèle migre correctement, mais provoque des erreurs lorsqu'il est référencé dans l'admin.Modèle Django auto-référencé Champ M2M
Toute aide très appréciée, merci!
class Party(models.Model):
name=models.CharField("Party", max_length=150)
def __str__(self): # __unicode__ on Python 2
return self.name
class Meta:
ordering = ('name',)
class ValCharBehav(models.Model):
name=models.CharField("Value/Character/Behaviour", max_length=150, unique=True)
def __str__(self): # __unicode__ on Python 2
return self.name
class ValCharBehavWithPeople(models.Model):
vcb=models.ManyToManyField(ValCharBehav, verbose_name="Value/Character/Behvaiour")
bywhom=models.ManyToManyField(Party, verbose_name="By Whom", blank=True, related_name="valCharByWhomReverseAccessor")
towhom=models.ManyToManyField(Party, verbose_name="To Whom", blank=True, related_name="valCharToWhomReverseAccessor")
def __str__(self): # __unicode__ on Python 2
return self.vcb.name+": by: "+self.bywhom.name+", to: "+self.towhom.name