def create(request): request_json = json.loads(request.body.decode('utf-8')) print(request_json) if 'url' in request_json and len(request_json['url'].strip()) > 0: val = URLValidator() try: long_url = url_normalize(request_json['url'].strip()) val(long_url) existing_link = Link.objects.filter(url=long_url) if existing_link.count() == 0: link = Link(url=long_url, date_created=timezone.now()) link.save() else: link = existing_link[0] return JsonResponse({ 'short_url': request.build_absolute_uri( reverse('shortener:goto', args=[link.short_url()])) }) except ValidationError: return JsonResponse({'error': 'URL is not valid.'}, status=400) else: return JsonResponse({'error': 'No URL given.'}, status=400)