Python >> Tutoriel Python >  >> Python

AssertionError :le champ ' ' a été déclaré sur le sérialiseur ' ', mais n'a pas été inclus dans l'option 'fields'

Vous devez modifier votre doctor nom du champ à la casse appropriée :

fields = ('id' , 'name' , 'gender' , 'breed' , 'adoption' , 'vaccines', 'doctor')

Doctor est actuellement incorrectement en majuscule.


Quel que soit le champ que vous définirez dans Serializer, vous devez le mettre dans les champs de méta-classe. Si vous ne le mentionnez pas, vous obtiendrez l'erreur.

builtins.AssertionErrorAssertionError :le champ 'abc' a été déclaré sur le sérialiseur ABCSerializer, mais n'a pas été inclus dans l'option 'fields'.

Donc, dans votre cas, vous avez défini docteur champ dans le sérialiseur afin que vos champs méta aient ce champ médecin. Il est sensible à la casse . Vous devrez donc utiliser docteur au lieu de Docteur .

class AnimalSerialiser(serializers.HyperlinkedModelSerializer):
doctor = DoctorSerealiser()


class Meta:
    model = Animal
    fields = ('id' , 'name' , 'gender' , 'breed' , 'adoption' , 'vaccines', 'doctor')