Bonjour à tous,
En travaillant sur mon projet perso en cours je bute sur une erreur dans un de mes formulaires Django et je ne trouve aucune solution ni sur StackOverflow ni dans le cours Django de Zds . Je m’explique :
J’ai un formulaire dans lequel on peut renseigner des données sur une personne sauf que certains champs sont des liens Many To Many vers d’autres modèles. Tout se passe à merveille mais quand je fait un ModelForm) sur ce modèle sans exclure les deux Many TO Many ca crash .
Voici l’erreur :
AttributeError: 'str' object has no attribute '_default_manager'
Mes modèles concernés (pas l’intégralité):
from django.db import models
from django.forms import ModelForm, DateInput
class collaborateurs(models.Model):
nomCollaborateur = models.CharField(max_length=200)
prenomCollaborateur = models.CharField(max_length=200)
titreCollaborateur = models.CharField(max_length=200)
texteIntroductifCv = models.TextField(default='')
nbAnneeExperience = models.IntegerField()
listeCompetencesCles = models.ManyToManyField('competences')
formation = models.TextField()
parcours = models.TextField()
methodologie = models.TextField()
langues = models.TextField()
outilsCollaborateur = models.ManyToManyField('outils')
estEnIntercontrat = models.BooleanField(default=False)
def __str__(self):
return self.nomCollaborateur
class outils(models.Model):
nomOutil = models.CharField(max_length=250)
def __str__(self):
return self
class competences(models.Model):
familleCompetence = models.CharField(max_length=250)
nomCompetence = models.CharField(max_length=250)
def __str__(self):
return self.nomCompetence
class collaborateursForms(ModelForm):
class Meta:
model = collaborateurs
fields = ['nomCollaborateur','prenomCollaborateur','titreCollaborateur','texteIntroductifCv','nbAnneeExperience','formation','parcours','methodologie','langues','estEnIntercontrat','outilsCollaborateur']
J’ai volontairement évité le fields all pour le moment pour passer d’un état fonctionnel (sans outilsCollaborateur ) à l’état du bug
Le cas spécifique des Many To Many n’étant pas abordé sur le tuto et sur la documentation officielle je ne vois rien que j’aurai raté (mais je me trompe surement ) : ou ai-je fait une erreur ?
Merci beaucoup à tous pour votre aide