Tengo una llamada de solicitud de AJAX (con JQuery) a mi vista de django. Envía para ver este tipo de datos:
{"cityId": 1, "products_with_priority": [{"id": 1, "priority": 1}, {"id": 2, "priority": 2}, {"id": 3, "priority": 3}, {"id": 4, "priority": 4}, {"id": 5, "priority": 5}]}En mi vista de django, estoy tratando de obtener esta lista de esta manera:
def my_view(request): city_id = request.POST.get('city_id') products_priorities = request.POST.getlist("products_with_priority") Donde city_id devuelve 1 y products_with_priority devuelve una matriz vacía.
¿Cómo es posible recibir una variedad de diccionarios a partir de una solicitud?
Asegúrese de que su tipo de datos sea json y encadene su matriz:
dataType: 'json', data: {'cityId': 1, 'products_with_priority': JSON.stringify([{"id": 1, "priority": 1}, {"id": 2, "priority": 2}, {"id": 3, "priority": 3}, {"id": 4, "priority": 4}, {"id": 5, "priority": 5}])} Luego use el método loads() de json (biblioteca estándar de Python) en su vista de Django:
products_priorities = json.loads(request.POST.get('products_with_priority'))Convierta los datos a una cadena json.
y recibirlo como
data = json.loads(request.POST)send your data in a json string to django view and then Try def my_view(request): data = OrderedDict() data = json.loads(request.POST) city_id = data['city_id']