--- 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()