def create(request): NoteForm = get_note_form(request) form = NoteForm() if request.method == 'POST': form = NoteForm(request.POST) if form.is_valid(): if request.user.is_authenticated(): author = request.user else: if 'email' in form.cleaned_data: users_list = User.objects.filter( email=form.cleaned_data['email']) if len(users_list) > 0: author = users_list[0] else: user = User() user.username = form.cleaned_data['email'] user.email = form.cleaned_data['email'] user.save() author = user note = Note( text=form.cleaned_data['text'], type=form.cleaned_data['type'], pub_date=datetime.datetime.now(), author=author, ) if 'public' in form.cleaned_data: note.public = True note.save() save_bookmark_to_note(request, note) send_note_email(note, 'http://' + request.get_host()) if request.is_ajax: _note = note.as_json() _note['url'] = request.get_host() + reverse(detail, args=(note.id, )) if request.user.is_authenticated() and ( note.author == request.user or user.is_staff): _note['editable'] = True return HttpResponse(json.dumps(_note), 'application/json') return HttpResponseRedirect(reverse(detail, args=(note.id, ))) if request.is_ajax(): return HttpResponse( json.dumps({ "form": render_to_string("notes/form.html", { "form": form, }, context_instance=RequestContext(request)) }), 'application/json') return render_to_response('notes/form_page.html', {'form': form}, context_instance=RequestContext(request))