Prevent double submissions

This commit is contained in:
Jonathan Cremin 2015-01-18 00:24:13 +00:00
parent 099892e56f
commit d52fea9afa
3 changed files with 8 additions and 9 deletions

View file

@ -1,7 +1,8 @@
from urlparse import urlparse
from django.shortcuts import render, redirect from django.shortcuts import render, redirect
from django.http import Http404 from django.http import Http404
from django.contrib import messages
from .models import Link, LinkForm from .models import Link, LinkForm
from urlparse import urlparse
def catchall(request, id): def catchall(request, id):
try: try:
@ -13,14 +14,17 @@ def catchall(request, id):
link = Link(url=id) link = Link(url=id)
link.save(); link.save();
context = {'form': LinkForm} context = {'form': LinkForm}
context['short_url'] = "http://" + str(request.get_host()) + "/" + str(link.id) request.session['short_url'] = "http://" + str(request.get_host()) + "/" + str(link.id)
return render(request, 'index.html', context) return redirect('/')
raise Http404("Link does not exist") raise Http404("Link does not exist")
def home(request): def home(request):
context = {'form': LinkForm} context = {'form': LinkForm}
if 'short_url' in request.session:
context['short_url'] = request.session['short_url']
if 'url' in request.POST: if 'url' in request.POST:
link = Link(url=request.POST['url']) link = Link(url=request.POST['url'])
link.save(); link.save();
context['short_url'] = "http://" + str(request.get_host()) + "/" + str(link.id) request.session['short_url'] = "http://" + request.get_host() + "/" + link.id
return redirect('/')
return render(request, 'index.html', context) return render(request, 'index.html', context)

View file

@ -36,7 +36,6 @@ INSTALLED_APPS = (
MIDDLEWARE_CLASSES = ( MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
) )
TEMPLATE_DIRS = ( TEMPLATE_DIRS = (

View file

@ -2,10 +2,6 @@ from django.conf.urls import patterns, include, url
from django.contrib import admin from django.contrib import admin
urlpatterns = patterns('', urlpatterns = patterns('',
# Examples:
# url(r'^$', 'minie.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^$', 'links.views.home', name='home'), url(r'^$', 'links.views.home', name='home'),
url(r'^admin/', include(admin.site.urls)),
url(r'(.*)', 'links.views.catchall', name='short'), url(r'(.*)', 'links.views.catchall', name='short'),
) )