def update_item(request, item_id): errors = {'__all__': []} try: items = Item.objects.filter(id=item_id) if items.__len__() == 0: errors['__all__'].append("item not found") raise JsonResponseError item = items[0] if item.user != request.user: errors['__all__'].append("not allowed") raise JsonResponseError form = ItemForm(request.POST) if not form.is_valid(): errors.update(form.field_errors_dict()) raise JsonResponseError item.title = form.cleaned_data['title'] item.description = form.cleaned_data['description'] item.lat = form.cleaned_data['lat'] item.lng = form.cleaned_data['lng'] item.relist() item.save() response = {'success': True} return HttpResponse(simplejson.dumps(response)) except JsonResponseError: response = {'success': False, 'errors': errors} return HttpResponse(simplejson.dumps(response))
def new_item(request): errors = {'__all__': []} try: if not request.user.is_authenticated(): errors['__all__'].append("user must be logged in to create an item") raise JsonResponseError form = ItemForm(request.POST) if not form.is_valid(): errors.update(form.field_errors_dict()) raise JsonResponseError item = Item( title = form.cleaned_data['title'], description = form.cleaned_data['description'], lat = form.cleaned_data['lat'], lng = form.cleaned_data['lng'], user = request.user ) item.relist() item.save() response = {'success': True, 'item_id': item.id} return HttpResponse(simplejson.dumps(response)) except JsonResponseError: response = {'success': False, 'errors': errors} return HttpResponse(simplejson.dumps(response))