Ich habe folgendes Modell:django-Rest-Rahmen: Der Anruf kann nicht `.is_valid()` wie keine `data =` Schlüsselwort-Argument übergeben wurden, als die Serializer Instanz instanziieren
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)
Und die folgenden Serializer :
class PatientNoteSerializer(serializers.ModelSerializer):
class Meta:
model = PatientNote
Ich möchte nur einen POST auf dem PatientNote machen. Die GET-Werke und auch die POST bei anderen Modellen funktioniert:
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)
Die request.data ist ein QueryDict, dh
<QueryDict: {u'category': [u'1'], u'patient': [u'1'], u'description': [u'da rest']}>
Es wäre in der Lage, die beiden FKs, Patienten und Kategorie zu füllen , durch ihre IDs und die Beschreibung ist ein einfacher Text.
Die POST-Anforderung ist die folgende (die mit anderen Modellen funktioniert):
Wie auch immer, die POST-Antwort 500 mit dem folgenden Fehler:
AssertionError at /api/notes/
Kann nicht .is_valid()
nennen, da keine data=
Das Schlüsselwortargument wurde beim Instanziieren der Serialisierungsinstanz übergeben.
Der Fehler ist der gleiche, wenn ich versuche, es in der Python-Shell zu verwenden.
Was für ein Tippfehler! Vielen Dank! – ennioma