def new_pin_api(request): if request.method == "POST": try: trip = Trip.objects.get(pk=int(request.POST.get('trip'))) except: response = {'success': False, 'error': 'Invalid Trip ID'} try: lat = float(request.POST.get('lat').decode('ascii', 'ignore')) lon = float(request.POST.get('lon').decode('ascii', 'ignore')) location = Location.objects.create(lat=lat, lon=lon) except: response = {'success': False, 'error': 'Problem with location'} name = request.POST.get('name') pin_date = parse(request.POST.get('date')) tracks = (request.POST.get('tracks') == "true") text = request.POST.get('text') try: pin = Pin(trip=trip, name=name, pin_date=pin_date, location=location, tracks=tracks, text=text) pin.save() except: response = {'success': False, 'error': 'Could not create pin'} try: for uploadedFile in request.FILES.itervalues(): media = Image(original=uploadedFile, pin=pin) media.save() media.generate() response = {'success': True} except: pin.delete() response = {'success': False, 'error': 'Image upload failed'} else: response = {'success': False, 'error': 'Use POST'} return HttpResponse(json.dumps(response), mimetype='application/json')
def new_pin_api(request): if request.method == "POST": try: trip = Trip.objects.get(pk=int(request.POST.get("trip"))) except: response = {"success": False, "error": "Invalid Trip ID"} try: lat = float(request.POST.get("lat").decode("ascii", "ignore")) lon = float(request.POST.get("lon").decode("ascii", "ignore")) location = Location.objects.create(lat=lat, lon=lon) except: response = {"success": False, "error": "Problem with location"} name = request.POST.get("name") pin_date = parse(request.POST.get("date")) tracks = request.POST.get("tracks") == "true" text = request.POST.get("text") try: pin = Pin(trip=trip, name=name, pin_date=pin_date, location=location, tracks=tracks, text=text) pin.save() except: response = {"success": False, "error": "Could not create pin"} try: for uploadedFile in request.FILES.itervalues(): media = Image(original=uploadedFile, pin=pin) media.save() media.generate() response = {"success": True} except: pin.delete() response = {"success": False, "error": "Image upload failed"} else: response = {"success": False, "error": "Use POST"} return HttpResponse(json.dumps(response), mimetype="application/json")
def file_upload_view(request): if request.method == "POST": files = request.FILES[u'files[]'] if type(files) is not list: files = [files] result = [] for new_file in files: content_type = new_file.content_type.split("/")[0] if content_type == "image": media = Image(original=new_file) media.save() media.generate() result.append({'id': media.id, 'name': new_file.name, 'url': media.pin_display.url}) else: result.append( {"error": new_file.name + " is not a valid image"}) response_data = json.dumps(result) return HttpResponse(response_data, mimetype='application/json') else: pass # return 404