fix: Make polls app work correctly with Django 1.6
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Tue, 18 Feb 2014 12:25:39 +0000 (13:25 +0100)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Tue, 18 Feb 2014 12:25:39 +0000 (13:25 +0100)
Sets are not serializable to JSON and Django 1.6 uses this format
to serialize session data by default.

apps/polls/models.py

index f73b970..8e35668 100644 (file)
@@ -37,7 +37,7 @@ class Poll(models.Model):
         return self.items.all().aggregate(models.Sum('vote_count'))['vote_count__sum']
 
     def voted(self, session):
-        return self.id in session.get(USED_POLLS_KEY, set())
+        return self.id in session.get(USED_POLLS_KEY, [])
 
 
 class PollItem(models.Model):
@@ -60,5 +60,5 @@ class PollItem(models.Model):
     def vote(self, session):
         self.vote_count = self.vote_count + 1
         self.save()
-        session.setdefault(USED_POLLS_KEY, set()).add(self.poll.id)
+        session.setdefault(USED_POLLS_KEY, []).append(self.poll.id)
         session.save()