2015-04-21 5 views
1

J'utilise Django reste-cadre, je suis en train d'obtenir un champ de mes modèlesDjango Rest cadre sérialiseur

class StudentSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Student 
     ordering = ['score' , 'username'] 
     fields = ('id', 'username', 'user' ,'first_name', 'last_name', 'reg_number' ,'score', 'classroom') 

mon problème est que je viens d'obtenir: -id -username -first_name -last_name -Score

mais je ne peux pas obtenir le reg_number et classe même si je supprime tous les champs:

class StudentSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Student 
     ordering = ['score' , 'username'] 

J'obtiens le résultat.

Je possède ce problème seulement avec 3 modèles: User & étudiant & Professeur (étudiants et le professeur sont inhereted de l'utilisateur)

mon modèle étudiant:

class Student(User): 
    reg_number = models.IntegerField() 
    classroom = models.ForeignKey(Classroom) 
    score = models.IntegerField(default=0) 
    skills = models.TextField(blank=True) 
    interest = models.TextField(blank=True) 
    about = models.TextField(blank=True) 
    projects = models.TextField(blank=True) 
+0

Les définitions de votre sérialiseur sont correctes. Je viens de tester un graphique d'héritage de modèle équivalent avec DRF v3.1.1. Potentiellement, c'est un problème avec les définitions du modèle. Pouvez-vous partager ceux-ci aussi? –

+0

je viens de changer les noms en ajoutant "s" à Student "s" ..... à mon avis et sérialiseur et tout fonctionne. mais je ne peux pas obtenir le problème ^^ – user3375448

+0

Il n'est pas clair quels «noms» vous changez .... Noms de classe de modèle, noms d'attribut de champ, chaînes littérales représentant les noms de modèle/champ. Il est donc difficile de vous aider à comprendre où était le problème. Je suis content que tu l'aies fonctionné de toute façon. –

Répondre

0

Pouvez-vous inclure votre définition du modèle étudiant. ?? La raison peut être que votre modèle d'étudiant contient une relation inverse dans tous les autres modèles. Vous avez explicitement inclure ce champ dans le sérialiseur. Rubriques relatives aux relations inversées dans le lien suivant http://www.django-rest-framework.org/api-guide/relations/#reverse-relations

+0

j'ai rejoint le modèle étudiant;) – user3375448