0
votes

TypeError: champ "salle de classe" attendue un nombre mais obtenu (4,)

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. XXX

Le champ La classe dans le L'étudiant classe est défini comme un floatfield .

Je reçois l'erreur suivante:

TypeError: champ "salle de classe" attendue un nombre mais obtenu (4,).

Que peut être la cause de cela?

Editer 1: TYPO


3 commentaires

Le problème concerne les virgules suivis sur toutes vos lignes variables. Vous définissez littéralement la valeur sur 4,


L'utilisation de float (S [2]) n'a pas fonctionné. @Match Comment puis-je changer la ligne pour le faire fonctionner?


Supprimer la virgule.


3 Réponses :


2
votes

Les virgules suivantes créent des tuples.

student.first_name = s[0]


0 commentaires

1
votes

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()


0 commentaires

0
votes

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))


0 commentaires