Django Library Users
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

models.py 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from django.conf import settings
  2. from django.contrib.auth.models import User
  3. from django.db import models
  4. import pytz
  5. # GENERAL Methods and Classes
  6. #
  7. def get_userprofile(user):
  8. try:
  9. profile = user.userprofile
  10. except UserProfile.DoesNotExist:
  11. profile = UserProfile(user=user)
  12. profile.save()
  13. return profile
  14. def UserprofilerExist(username, data):
  15. try:
  16. profile = UserProfile.objects.get(user__username=username)
  17. except UserProfile.DoesNotExist:
  18. return False
  19. return profile.timezone == data['timezone'] and profile.language_code == data['language_code']
  20. # USERPROFILE Model
  21. #
  22. class UserProfile(models.Model):
  23. user = models.OneToOneField(User, unique=True, on_delete=models.CASCADE)
  24. timezone = models.CharField(max_length=150, default='UTC', choices=[(t, t) for t in pytz.common_timezones])
  25. language_code = models.CharField(max_length=150, default='en', choices=settings.LANGUAGES)
  26. def export_key(self):
  27. return self.user.username
  28. def export_data(self):
  29. rv = {}
  30. rv['timezone'] = self.timezone
  31. rv['language_code'] = self.language_code
  32. return rv
  33. def import_data(self, data):
  34. self.timezone = data['timezone']
  35. self.language_code = data['language_code']
  36. self.save()