Ich verwende Django REST-Framework und haben diesen Code einen PUT Aufruf zu tun:Erste JSON-Daten als QueryDict
$.ajax({
url: '/api/v1/order/'+orderid+'/',
type: 'PUT',
data: { book: true }
});
und dies ist die Ansicht, die Griffe, die:
@api_view(['PUT', 'POST'])
@authentication_classes((SessionAuthentication, TokenAuthentication, BasicAuthentication))
@permission_classes((IsAuthenticated,))
def api_orderbook(request, orderid):
logger.debug(request.data)
if request.method == 'PUT' and request.data.get("book") == True:
... do stuff ...
Aber die request.data.get("book")
ist kein boolean, sondern ein String:
<QueryDict: {u'book': [u'true']}>
Als ich JSON.stringify({ book: true })
in meinem Ajax c verwenden alle, es ist sogar noch schlimmer:
<QueryDict: {u'{"book":true}': [u'']}>
Wie kann ich das Javascript-Objekt als richtigen Python QueryDict
in meinem Code zu bekommen?
Das hat nichts mit dem Modell zu tun. Es ist ein boolescher Wert, um irgendeine Art von Verhalten auszulösen. –