qrurls/models.py
changeset 4 d56f48f6c94b
parent 3 e7d3f1a28b24
child 6 e821a59bf3a7
--- a/qrurls/models.py	Mon Jul 15 01:51:59 2013 +0300
+++ b/qrurls/models.py	Mon Jul 15 02:34:23 2013 +0300
@@ -1,5 +1,9 @@
 from django.db import models
 from django.core.urlresolvers import reverse
+import django.utils.http
+from django.contrib.sites.models import get_current_site
+
+QRCODE_API = 'https://chart.googleapis.com/chart?cht=qr&chs={width}x{height}&chl={url}'
 
 class URL(models.Model):
     shorturl = models.SlugField(unique=True)
@@ -8,6 +12,18 @@
         verbose_name = u"URL"
         verbose_name_plural = u"URLs"
 
+    def qrcode_img (self, size=512) :
+        return QRCODE_API.format(
+                width=size, height=size,
+                url=django.utils.http.urlquote(self.qrcode_url()),
+        )
+
+    def qrcode_url (self) :
+        return 'http://{domain}{url}'.format(
+                domain = get_current_site(None).domain,
+                url = self.get_absolute_url(),
+        )
+
     def get_absolute_url (self) :
         return reverse('shorturl', args=[self.shorturl])