# HG changeset patch # User Tero Marttila # Date 1378557504 -10800 # Node ID 3a2fdc820c4116db22a43536c2cacd8089805530 # Parent 3aaac91a6654192e0c9415d3d73f3de69ff3fae6 drop separate shorturl_id= lookup key, match shorturl.isdigit() diff -r 3aaac91a6654 -r 3a2fdc820c41 qrurls/models.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() diff -r 3aaac91a6654 -r 3a2fdc820c41 qrurls/urls.py --- 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\d+)/?$', qrurls.views.shorturl, name='miniurl'), url(r'^(?P\w+)/?$', qrurls.views.shorturl, name='shorturl'), + url(r'^(?P\d+)/?$', qrurls.views.shorturl, name='miniurl'), url(r'^(?P\w+)/(?P\d+)$', qrurls.views.item, name='shorturl_item'), ) diff -r 3aaac91a6654 -r 3a2fdc820c41 qrurls/views.py --- 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()