Sono il seguente modello:django-resto-quadro: Impossibile chiamare `.is_valid()` `come nessun dati =` argomento chiave è stata approvata quando si crea un'istanza dell'istanza serializzatore
class NoteCategory(models.Model):
title = models.CharField(max_length=100, unique=True)
def __unicode__(self):
return '{}'.format(self.title)
class PatientNote(models.Model):
category = models.ForeignKey(NoteCategory)
patient = models.ForeignKey(Patient)
description = models.CharField(max_length=500)
created_at = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return '{}'.format(self.description)
E il seguente serializzatore :
class PatientNoteSerializer(serializers.ModelSerializer):
class Meta:
model = PatientNote
Voglio solo fare un POST sul PatientNote. Le opere GET e anche il post su altri modelli funzioni correttamente:
class PatientNoteViewSet(APIView):
queryset = PatientNote.objects.all()
def post(self, request, format=None):
if not request.auth:
return Response({})
token = Token.objects.filter(key=request.auth)[0]
user = token.user
serializer = PatientNoteSerializer(request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Il request.data è un QueryDict, vale a dire,
<QueryDict: {u'category': [u'1'], u'patient': [u'1'], u'description': [u'da rest']}>
Sarebbe in grado di popolare il due FKS, paziente e categoria , attraverso i loro ID e la descrizione è un testo semplice.
La richiesta POST è la seguente (che funziona con altri modelli):
In ogni caso, la risposta POST è di 500 con il seguente errore:
AssertionError at /api/notes/
Impossibile chiamare .is_valid()
come nessuna data=
l'argomento parola chiave è stato passato durante l'istanziazione dell'istanza serializer.
L'errore è lo stesso se provo ad usarlo nella shell python.
Che un errore di battitura! Grazie mille! – ennioma