--- a/cmpuqrct/urls.py Tue Jul 16 00:31:57 2013 +0300
+++ b/cmpuqrct/urls.py Mon Jul 15 23:46:45 2013 +0200
@@ -8,6 +8,7 @@
urlpatterns = patterns('',
url(r'^$', qrurls.views.index, name='shorturls'),
url(r'^urls/(?P<shorturl>\w+)', qrurls.views.shorturl, name='shorturl'),
+ url(r'(?i)^u/(?P<shorturl_id>\d+)', qrurls.views.shorturl, name='minurl'),
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
--- a/qrurls/models.py Tue Jul 16 00:31:57 2013 +0300
+++ b/qrurls/models.py Mon Jul 15 23:46:45 2013 +0200
@@ -22,12 +22,15 @@
def qrcode_url (self) :
return 'http://{domain}{url}'.format(
domain = get_current_site(None).domain,
- url = self.get_absolute_url(),
+ url = self.get_short_url(),
).upper()
def get_absolute_url (self) :
return reverse('shorturl', args=[self.shorturl])
+ def get_short_url (self) :
+ return reverse('minurl', args=[self.id])
+
def active_item(self, now=None) :
"""Currently published URLItem."""
if now is None :
--- a/qrurls/views.py Tue Jul 16 00:31:57 2013 +0300
+++ b/qrurls/views.py Mon Jul 15 23:46:45 2013 +0200
@@ -9,11 +9,20 @@
urls = urls,
))
-def shorturl (request, shorturl) :
- shorturl = shorturl.strip(' /')
- try :
- url = URL.objects.get(shorturl=shorturl)
- except URL.DoesNotExist :
+def shorturl (request, shorturl=None, shorturl_id=None) :
+ if shorturl :
+ shorturl = shorturl.strip(' /')
+ try :
+ url = URL.objects.get(shorturl=shorturl)
+ except URL.DoesNotExist :
+ raise Http404()
+ elif shorturl_id :
+ shorturl_id = int(shorturl_id.strip(' /'))
+ try :
+ url = URL.objects.get(id=shorturl_id)
+ except URL.DoesNotExist :
+ raise Http404()
+ else :
raise Http404()
# most recent