J'ai un tableau de matrices. Chacun des tableaux imbriqués contient des informations sur un étudiant. J'irais ensuite sur elle et sauve chacun des tableaux dans un objet étudiant et persistant que dans mon dB. Le champ Je reçois l'erreur suivante: p> TypeError: champ "salle de classe" attendue un nombre mais obtenu (4,). P>
BlockQuote> Que peut être la cause de cela? P> Editer 1: TYPO P> P> La classe code> dans le
L'étudiant code> classe est défini comme un
floatfield code>. P>
3 Réponses :
Les virgules suivantes créent des tuples.
student.first_name = s[0]
Comme @Match l'a dit, vous avez des virgules suivis lors de la définition des valeurs de vos variables. Supprimez ceux et vous devriez être bon. Par exemple:
student.first_name = s[0] student.last_name = s[1] student.classroom = s[2] student.grade1 = s[3] student.save()
J'ai édité votre code mais je pense que vous voulez faire quelque chose comme ceci:
s = [ ["James", "Smith", 4, 10], # more students here ] class Student: def __init__(self,first_name,last_name,classroom,grade): """ Create a new point at the origin """ self.first_name = first_name self.last_name = last_name self.classroom = classroom self.grade = grade student = Student(s[0][0],s[0][1],s[0][2],s[0][3]) from pprint import pprint pprint(vars(student))
Le problème concerne les virgules suivis sur toutes vos lignes variables. Vous définissez littéralement la valeur sur
4, code>
L'utilisation de float (S [2]) n'a pas fonctionné. @Match Comment puis-je changer la ligne pour le faire fonctionner?
Supprimer la virgule.