models.py 849 B

12345678910111213141516171819202122232425
  1. from django.db import models
  2. import base64
  3. try:
  4. import cPickle as pickle
  5. except ImportError:
  6. import pickle
  7. class Record(models.Model):
  8. user = models.ForeignKey('users.User')
  9. forum = models.ForeignKey('forums.Forum')
  10. threads = models.TextField(null=True,blank=True)
  11. updated = models.DateTimeField()
  12. cleared = models.DateTimeField()
  13. def get_threads(self):
  14. try:
  15. return pickle.loads(base64.decodestring(self.threads))
  16. except Exception:
  17. # ValueError, SuspiciousOperation, unpickling exceptions. If any of
  18. # these happen, just return an empty dictionary (an empty permissions list).
  19. return {}
  20. def set_threads(self, threads):
  21. self.threads = base64.encodestring(pickle.dumps(threads, pickle.HIGHEST_PROTOCOL))