drop separate shorturl_id= lookup key, match shorturl.isdigit()
authorTero Marttila <terom@fixme.fi>
Sat, 07 Sep 2013 15:38:24 +0300
changeset 81 3a2fdc820c41
parent 80 3aaac91a6654
child 82 6442e5c97b48
drop separate shorturl_id= lookup key, match shorturl.isdigit()
qrurls/models.py
qrurls/urls.py
qrurls/views.py
--- a/qrurls/models.py	Sat Sep 07 15:35:56 2013 +0300
+++ b/qrurls/models.py	Sat Sep 07 15:38:24 2013 +0300
@@ -183,7 +183,7 @@
         ordering = ['published']
 
     @classmethod
-    def search (cls, shorturl=None, shorturl_id=None, item_id=None, related=()) :
+    def search (cls, shorturl=None, item_id=None, related=()) :
         """
             Return the URLItem for a given shorturl, either the given specific one,
             or the latest, from the database.
@@ -193,13 +193,13 @@
         # JOIN against shorturl, urlimage
         url_item = cls.objects.select_related(*related)
 
-        if shorturl:
-            url_item = url_item.filter(shorturl__shorturl=shorturl)
-        elif shorturl_id:
-            shorturl_id = int(shorturl_id)
+        if not shorturl:
+            raise cls.DoesNotExist()
+        elif shorturl.isdigit():
+            shorturl_id = int(shorturl)
             url_item = url_item.filter(shorturl__id=shorturl_id)
         else:
-            raise cls.DoesNotExist()
+            url_item = url_item.filter(shorturl__shorturl=shorturl)
         
         # match for published items
         now = timezone.now()
--- a/qrurls/urls.py	Sat Sep 07 15:35:56 2013 +0300
+++ b/qrurls/urls.py	Sat Sep 07 15:38:24 2013 +0300
@@ -3,8 +3,8 @@
 
 urlpatterns = patterns('',
     url(r'^$', qrurls.views.index, name='shorturls'),
-    url(r'^(?P<shorturl_id>\d+)/?$', qrurls.views.shorturl, name='miniurl'),
     url(r'^(?P<shorturl>\w+)/?$', qrurls.views.shorturl, name='shorturl'),
+    url(r'^(?P<shorturl>\d+)/?$', qrurls.views.shorturl, name='miniurl'),
     
     url(r'^(?P<shorturl>\w+)/(?P<item_id>\d+)$', qrurls.views.item, name='shorturl_item'),
 )
--- a/qrurls/views.py	Sat Sep 07 15:35:56 2013 +0300
+++ b/qrurls/views.py	Sat Sep 07 15:38:24 2013 +0300
@@ -29,19 +29,19 @@
         urls    = urls,
     ))
 
-def shorturl (request, shorturl=None, shorturl_id=None) :
+def shorturl (request, shorturl=None) :
     """
         Primary frontend for redirecting based on current time.
     """
     
-    key = 'qrurls/urlfeed/{shorturl}'.format(shorturl=(shorturl or shorturl_id)) # format as dict
+    key = 'qrurls/urlfeed/{shorturl}'.format(shorturl=shorturl) # format as dict
     data = cache.get(key)
     
     if data :
         url, modified = data
         log.info("get cache: %s: %s", key, url)
     else:
-        url_item = URLItem.search(shorturl=shorturl, shorturl_id=shorturl_id)
+        url_item = URLItem.search(shorturl=shorturl)
 
         modified = url_item.last_modified()
         url = url_item.get_absolute_url()